发信人: 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]
  | 
 
 
 |