组确实使单个用户的权限变得更加复杂。假设用户 M_Haneef 分别拥有对特定表的 SELECT 和 UPDATE 权限,但他同时又是两个组的成员。假设这两个组中的一个组根本没有访问表的权限,另一个组只有 SELECT 权限。那么,此用户的实际权限是什么呢?
SQL Anywhere 通过以下方式来确定某个用户 ID 是否有执行特定操作的权限:
如果该用户 ID 拥有 DBA 特权,则该用户 ID 可以在数据库中执行任何操作。
否则,权限取决于指派给单个用户的权限。如果该用户 ID 已被授予执行某操作的权限,则可以执行此操作。
如果没有为该用户进行过单独设置,则权限取决于该用户所属的各个组的权限。如果这些组中的任何一组有执行某操作的权限,则该用户 ID 将会因其在该组中具有成员资格而拥有相应的权限,并因而可以执行此操作。
此方法最大程度地减少了与权限设置顺序相关的问题。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |