数据库原理与应用----------------------SQL的授权控制

一,用户的存储权限

在DBMS中,用户的存储权限由两个主要素组成:数据库对象和操作权限。

(1)数据库对象:可以是数据库,基本表,表中记录,属性值,视图,索引等。

(2)操作权限:根据数据对象有所不同,一般有对象定义(创建,修改,删除),对象的查询和更新等等。


一般的数据库用户有四种:

 (1)数据库管理员用户。

 (2)系统管理员用户。

 (3)数据库对象用户。

 (4)数据库访问用户。


二,权限的授予与收回

(1)GRANT语句

GRANT语句用于向用户授予权限。

GRANT  <权限列表>  ON  <数据库对象>

   TO  <用户列表>

      [ WITH  GRANT  OPTION ];

[ WITH  GRANT  OPTION ]:表示被授权的用户可以将这些权限继续转授其他用户。

(2)REVOKE语句

授予的权限可以由DBA或其他授权者用REVOKE语句收回。

REVOKE  [ GRANT  OPTION  FOR ] <权限列表>

   ON  <数据库对象>

     FROM <用户列表>

     [RESTRICT | CASCADE ];

GRANT  OPTION  FOR:表示只有授权权限被收回。

CASCADE:把该用户所转授出去的权限同时收回。

RESTRICT: 限制级联收回,当用户没有给其他用户授权时,才能收回权限,否则不能收回。


三,基于角色的授权

实现对角色的创建,授权和收回语句的格式:

CREATE   ROLE   <角色列表>;

GRANT   <权限列表>   ON   <数据库对象>   to   <角色列表>;

REVOKE   <权限列表>   ON  <数据库对象>  FROM   <角色列表>;


角色可以授予用户,也可以授予其他角色。TRANSACT SQL中为用户授予角色:

sq_addrolemember  <角色>,<用户>;


回收用户所拥有的角色的权限:

sq_droprolemember  <角色>,<用户>;


所以,一个用户或角色的权限包括所有直接授予用户/角色的权限,以及授予用户/角色所拥有的角色的权限。





本文章参考宋金玉 陈萍 陈刚 编著《数据库原理与应用》









猜你喜欢

转载自blog.csdn.net/mr_police/article/details/80723189