发信人: simy()
整理人: majorsun(1999-11-19 15:30:16), 站内信件
|
如何限制不同用户对记录的访问范围?(不仅在应用程序中)
比如,有一表 mytable, (比如在ORACLE8中的system.mytable),
需要根据该表中的一个字段的值来限制用户可以访问哪些记录。
这在应用程序中只要增加where 条件就可以了。
但是,如果用户在应用程序之外,使用某种工具软件,如PB,
或者用数据库提供的客户端SQL工具,就可以访问mytable中的全部记录。
你认为该采取什么措施?怎么做的?
-- 回复请选择“将本文章寄一份给原作者”。以便我能够拜读你的大作。
谢谢你的关注。
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.98.121.53] 发信人: ebug (瞳儿), 信区: SystemAnalysis 标 题: Re: 一个系统安全性的问题 发信站: 网易虚拟社区 (Mon May 31 14:22:14 1999), 站内信件
存储过程、触发器。
【 在 simy (亦幻) 的大作中提到: 】
: 如何限制不同用户对记录的访问范围?(不仅在应用程序中)
: 比如,有一表 mytable, (比如在ORACLE8中的system.mytable),
: 需要根据该表中的一个字段的值来限制用户可以访问哪些记录。
: 这在应用程序中只要增加where 条件就可以了。
: .......
-- 我的两只耳朵之间是大脑,我的两只眼睛后头也有大脑,别想蒙蔽我煽动我教唆我利用我
得道多助,失道寡助
消灭法西斯,自由属于人民
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.98.108.96] 发信人: simy (亦幻), 信区: SystemAnalysis 标 题: Re: 一个系统安全性的问题 发信站: 网易虚拟社区 (Mon May 31 17:31:22 1999), 站内信件
【 在 ebug (瞳儿) 的大作中提到: 】
: 存储过程、触发器。
: 【 在 simy (亦幻) 的大作中提到: 】
: : 如何限制不同用户对记录的访问范围?(不仅在应用程序中)
: : 比如,有一表 mytable, (比如在ORACLE8中的system.mytable),
: .......
综合使用视图、存储过程和触发器应该可以解决此问题。
不过在具体实施上还有些问题:(以ORACLE8来讨论)
1。如果以SYSTEM身份为用户USER1创建一个访问
SYSTEM.MYTABLE的视图USER1.MYVIEW,
(可能由于USER1无权访问SYSTEM.MYTABLE,)
USER1.MYVIEW是建不起的。
2。如果以SYSTEM身份为用户USER1创建一个访问
SYSTEM.MYTABLE的视图SYSTEM.MYVIEW1,是可以的。
但,如果有100个不同权限的用户(user1...user100),需要创建相应的视图,
(SYSTEM.MYVIEW1...SYSTEM.MYVIEW100).
势必增加应用程序的复杂性(一个应用可能有数百个table)。
3。如果用户USER1对SYSTEM.MYVIEW1有SELECT和INSERT权,
USER1可以通过插入超过SYSTEM.MYVIEW1限制条件的记录来破坏系统数据。
即,SYSTEM.MYVIEW1的条件如果是
WHERE NUMBER <100
USER1 可以insert SYSTEM.MYVIEW1 set value (number = 888,...). 显然这是 应该被禁止的。
但是如果USER1没有对 SYSTEM.MYVIEW1的INSERT权,他又如何维护 NUMBER <100 的记录?
4。如果在SYSTEM.MYTABLE上加触发器判断用户的权限,该触发器如何知道当前用 户是哪个?
5。如果在SYSTEM.MYVIEW1上加触发器当然知道用户就是USER1,
但是,这就需要对SYSTEM.MYVIEW1....SYSTEM.MYVIEW100都加触发器。有数百个 table,就需要数万个触发器!!!这还仅仅是对INSERT!!!
应该如何创建视图?
有没有便捷的方法?
你在设计用户权限时,是如何处理的?
-- 回复请选择“将本文章寄一份给原作者”。以便我能够拜读你的大作。
谢谢你的关注。
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.98.116.174] 发信人: lakeside (lakeside), 信区: SystemAnalysis 标 题: Re: 一个系统安全性的问题 发信站: 网易虚拟社区 (Mon May 31 20:50:44 1999), 站内信件
【 在 simy (亦幻) 的大作中提到: 】
: 如何限制不同用户对记录的访问范围?(不仅在应用程序中)
: 比如,有一表 mytable, (比如在ORACLE8中的system.mytable),
: 需要根据该表中的一个字段的值来限制用户可以访问哪些记录。
: 这在应用程序中只要增加where 条件就可以了。
: .......
最好的办法是采用中间件,屏蔽客户端对数据库的直接访问
如IBM CICS 或BEA TUXEDO
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.31.188] 发信人: simy (亦幻), 信区: SystemAnalysis 标 题: Re: 一个系统安全性的问题 发信站: 网易虚拟社区 (Tue Jun 1 09:23:19 1999), 站内信件
【 在 lakeside (lakeside) 的大作中提到: 】
: 【 在 simy (亦幻) 的大作中提到: 】
: : 如何限制不同用户对记录的访问范围?(不仅在应用程序中)
: : 比如,有一表 mytable, (比如在ORACLE8中的system.mytable),
: : 需要根据该表中的一个字段的值来限制用户可以访问哪些记录。
: .......
大侠提到的这两样中间件东西我都不知道,哪里有有关介绍?
-- 回复请选择“将本文章寄一份给原作者”。以便我能够拜读你的大作。
谢谢你的关注。
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.98.117.71] 发信人: lakeside (lakeside), 信区: SystemAnalysis 标 题: Re: 一个系统安全性的问题 发信站: 网易虚拟社区 (Tue Jun 1 12:40:34 1999), 站内信件
【 在 simy (亦幻) 的大作中提到: 】
: 【 在 lakeside (lakeside) 的大作中提到: 】
: : 【 在 simy (亦幻) 的大作中提到: 】
: : .......
:
: .......
cics 去IBM主页查
tuxedo 在www.beasys.com
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.31.188] 发信人: fltwt (wake), 信区: SystemAnalysis 标 题: Re: 一个系统安全性的问题 发信站: 网易虚拟社区 (Tue Jun 1 22:34:22 1999), 站内信件
【 在 simy (亦幻) 的大作中提到: 】
: 如何限制不同用户对记录的访问范围?(不仅在应用程序中)
: 比如,有一表 mytable, (比如在ORACLE8中的system.mytable),
: 需要根据该表中的一个字段的值来限制用户可以访问哪些记录。
: 这在应用程序中只要增加where 条件就可以了。
: .......
为什么使用开发工具后就能访问你的全部记录呢?
这种控制应该是可以通过在程序中对用户访问权限进行控制的。
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 155.155.155.155]
|
|