您可以对单个表指派一组权限,并向用户授予这些权限组合,以规定他们对表的访问权限。
您可以使用 Sybase Central 或 Interactive SQL 来设置权限。在 Interactive SQL 中,可以使用 GRANT 语句来授予以下针对表的权限:
ALTER 权限允许用户变更表的结构或在表中创建触发器。REFERENCES 权限允许用户在表中创建索引和创建外键。这些权限可授予修改数据库模式的特权,因此不会将这些权限指派给大多数用户。这些权限不适用于视图。
DELETE、INSERT 和 UPDATE 权限授予修改表中数据的特权。
SELECT 权限可授予在表中查看数据的特权,但不授予更改数据的权限。
ALL 权限可授予所有上述权限。
REFERENCES、SELECT 和 UPDATE 权限可以被限制到表或视图中的一组列。
以具有 DBA 特权的用户身份连接到数据库。
单击 [表]。
右击某个表,然后选择 [属性]。
单击 [权限] 选项卡,然后配置该表的权限:
单击 [授权]。
双击某一用户或组。
在权限表中,单击该用户或组旁边的字段以设置特定权限。
选择某个用户然后单击 [更改] 来设置对列的特定权限。
单击 [确定]。
要撤消所有权限,请选择某个用户或组并单击 [撤消]。
单击 [应用]。
也可以在 [用户属性] 或 [组属性] 窗口中指派权限。要向多个用户或组指派权限,请使用 [表属性] 窗口。要向多个表指派权限,请使用 [用户属性] 窗口。
以具有 DBA 特权的用户身份连接到数据库。
执行 GRANT 语句来指派权限。
请参见GRANT 语句。
所有表权限都以非常相似的方式授予。您可为 M_Haneef 授予从名为 sample_table 的表中删除行的权限,方法如下:
以拥有 DBA 特权的用户身份或 sample_table 的所有者身份连接到数据库。
执行以下 SQL 语句:
GRANT DELETE ON sample_table TO M_Haneef; |
您可以为 M_Haneef 授予仅在名为 sample_table 的表中更新 column_1 和 column_2 列的权限,方法如下:
以拥有 DBA 特权的用户身份或 sample_table 的所有者身份连接到数据库。
执行以下 SQL 语句:
GRANT UPDATE ( column_1, column_2 ) ON sample_table TO M_Haneef; |
对表进行权限设置有其局限性,即表权限通常应用于表中的所有数据,虽然可以针对列的一个子集授予 REFERENCES、SELECT 和 UPDATE 权限。为了调整用户权限,您可以创建对表执行操作的过程,然后把执行该过程的权限授予用户。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |