0


SQL灵活的授权机制

1.DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。

2.用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。

3.被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。

4.所有授予出去的权限在必要时又都可以用REVOKE语句收回。

1.SQL授权

授权GRANT语句的一般格式

GRANT 权限 ON 【对象类型】 对象名 TO 用户1【WITH GRANT OPTION】

举例1:GRANT SELECT ON student TO u1; 授予用户u1,查询student表的权限。

举例2:GRANT SELECT ON student TO u1 WITH GRANT OPTION;

授予用户u1,查询student表的权限,同时用户u1也可以将获得的权限授予其他用户。

注意,不能循环授权。例如u1-->u2-->u3, u3不能再授权给u1。

举例3:GRANT SELECT ON student TO PUBLIC;授予所有用户查询student表的权限。

举例4:GRANT ALL PRIVILEGES ON student, course TO u2,u3;

不知道啥原因,上面例4在SQL Server中报错,分开改成:

GRANT ALL PRIVILEGES ON course TO u2,u3;

GRANT ALL PRIVILEGES ON student TO u2,u3;

ALL PRIVILEGES也不推荐使用了。

//把对student表和course表的全部权限授予用户u2,u3。

2.SQL收回权限

REVOKE语句一般格式为:

REVOKE 权限 ON 对象类型 对象名 FROM 用户 [CASCADE|RESTRICT]

举例1:REVOKE SELECT ON student FROM u4; //收回u4对student表的查询操作。

举例2:REVOKE SELECT ON student FROM PUBLIC; //收回所有用户对student表的查询操作。

举例3:REVOKE INSERT ON student FROM u1 CASCADE;

//CASCADE表示级联,收回直接或间接从u1处获得的对student表的INSERT权限。

标签: 数据库

本文转载自: https://blog.csdn.net/Z_CAIGOU/article/details/127548150
版权归原作者 一键部署 所有, 如有侵权,请联系我们删除。

“SQL灵活的授权机制”的评论:

还没有评论