服务器 频道

Informix的用户权限管理

    从上面的REVOKE和GRANT的格式,我们可看到,其实我们可以使用一条命令同时针对某一用户赋予或解除多种表级别或字段级别的权限。例如:
    GRANT INSERT, DELETE, UPDATE ON customer_table TO PUBLIC;/*同时赋予所有用户对该表的INSERT、DELETE和UPDATE权限*/
    GRANT SELECT, UPDATE (balance)
       ON customer_table TO myuser2;/*同时赋予myuser2对该表中balance字段的SELECT和UPDATE权限*/
    REVOKE INDEX, ALTER ON customer_table FROM myuser1;/*同时解除myuser1对该表的INDEX和ALTER权限*/

    你也可以在一条语句中同时针对某一用户赋予或解除表级别和字段级别的权限,这时字段级别的权限使用指定的字段,而表级别的权限使用指定的数据表。例如:
    GRANT INSERT, DELETE, SELECT, UPDATE (balance) ON customer_table TO myuser2;
       /*同时赋予myuser2对该表的INSERT、DELETE权限以及对字段balance的SELECT和UPDATE权限*/
    REVOKE INDEX, SELECT, ALTER (balance) ON customer_table FROM myuser1;
       /*同时赋予myuser1对该表的INDEX、ALTER权限以及对字段balance的SELECT权限*/

其它关键词
     在GRANT命令中,还可以使用其它两个关键词,首先是WITH GRANT OPTION关键词。在GRANT语句中使用这个关键词表示相关用户可以将同样的权限赋予其它用户。
    在下面的示例中,myuser1不仅对customer_table具有insert、delete、select和update的权限,而且他可以将这些权限中的几个或全部赋予其它用户。
    GRANT INSERT, DELETE, SELECT, UPDATE ON customer_table TO myuser1 WITH GRANT OPTION;
    如果myuser1的权限中的一个或全部被解除,所有经myuser1授权的用户的相关权限也自动被解除。
    另一个关键词是AS关键词。AS关键词允许你在执行一个授权时就象是在使用其它用户进行授权。而当这个用户的权限中的一个或全部被解除时,此次授权的用户的的相关权限也自动被解除。
    回到我们上面的例子,myuser1已经被赋予了customer_table的insert、delete、select和update权限,并且可以对这些权限进行授权。一个DBA,数据表的拥有者或是给myuser1授权的用户可以扮演myuser1给其它用户授权:
    GRANT INSERT, DELETE, SELECT, UPDATE ON customer_table TO myuser2 AS myuser1;
    现在myuser2和myuser1具有了同样的权限。要同时解除两者的权限,只要解除myuser1的权限就行了:
    REVOKE ALL ON customer_table FROM myuser1;

0
相关文章