一,用户的存储权限
在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 <角色>,<用户>;
所以,一个用户或角色的权限包括所有直接授予用户/角色的权限,以及授予用户/角色所拥有的角色的权限。