IBM System i数据库视图权限
我们有一台运行IBM i OS v6r1的IBM System i.在这个系统上,我创建了一些数据库视图.我想要做的是让一个特定的用户组只访问这些视图,而不是视图所在的库中的任何其他内容.这可能吗?我有一个用户组,它对我的??视图所在的库中的所有表和视图具有只读权限,并且当用户在此用户组下时,访问权限有效.我尝试复制用户组,然后分配权限仅包括我创建的视图,并拒绝访问.用户或用户组是否还必须拥有视图所源自的表的权限才能访问该视图?
解决方法是.授予使用视图的权限是不够的.用户还必须具有基础表的权限.允许访问受限用户的一种方法是采用权限.为了举例,我们假设如下: 用户RESTRICTED无权访问任何表. 允许PERMITTED在库PROGRAMS中创建RPG存储过程.确保程序指定了USRPRF(* OWNER).这意味着当程序运行时,它将使用所有者的权限(PERMITTED)而不是执行它的配置文件的权限(RESTRICTED). 通过SQL向RPG程序对象-or- GRANT授予用户PERMITTED * USE权限.此外,授予用户RESTRICTED * USE访问库程序的权限.这将允许RESTRICTED执行存储过程/程序. 请注意,用户RESTRICTED无权访问DATA中的表,并且您希望将其保留. 现在让用户RESTRICTED使用SQL来调用存储过程.她有权执行该程序,因为她对库程序以及编译的程序对象具有* USE权限.存储过程在所有者PERMITTED的授权下运行,并且由于PERMITTED具有对库DATA及其中的表的完全访问权限,因此存储过程可以访问/更新这些表. RESTRICTED尝试使用的任何原始SQL都会因权限不足而失败 – 她唯一能做的就是调用为她创建的存储过程. 如果您的程序与数据存储在同一个库中,则需要向库提供RESTRICTED * USE权限,并特别限制她(通过* EXCLUDE)对该库中的所有表进行限制.创建一个仅保存存储过程并将其授权给该库的RESTRICTED库可能更容易.这使得持续维护变得更容易,因为您不必尝试记住将其限制在DATA中新创建的表中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |