组可以用于查找数据库中的表和过程。例如,以下查询总会找到视图 SYS.SYSGROUPS,因为所有用户都属于 PUBLIC 组,而 PUBLIC 组又属于拥有 SYSGROUPS 视图的 SYS 组:
SELECT * FROM SYSGROUPS; |
SYSGROUPS 视图包含 group_name、member_name 对的列表,这些对表示数据库中的组成员资格。
如果名为 employees 的表归用户 ID personnel 所有,且 M_Haneef 是 personnel 组的成员,则 M_Haneef 可在 SQL 语句中将 employees 表简单地称为 employees。不是 personnel 组成员的用户需要使用限定名称 personnel.employees。
若要允许每个人在访问表时都无需使用限定名称,最好是创建一个专用来拥有这些表的组。不为该组授予任何权限,但让所有用户都成为该组的成员。然后,您可以创建权限组,并在确有必要时为用户授予这些权限组中的成员资格。
如果用户拥有的表与组拥有的表名称相同,则非限定表名将表示用户拥有的表,而非组拥有的表。同样,如果用户属于多个拥有同名表的组,则用户必须限定表名。
请参见数据库对象名和前缀。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |