前言
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。因此,可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。
CREATE ROLE:创建一个角色
GRANT:给角色授权
REVOKE:收回角色的权限
WITH ADMIN OPTION:如果指定该子句,则获得某种权限的角色或用户还可以把这种权限再授予其他角色。
1、角色的创建
一般格式:CREATE ROLE <角色>
例子:
CREATE ROLE R1;
刚刚创建的角色是空的,没有任何权限,需要GRANT进行授权。
2、给角色授权
一般格式:
数据库管理员和用户可以利用GRANT语句将权限授予某一个或几个角色。
3、将一个角色授予其他的角色或用户
(1)将一个角色授予其他角色
一般格式:
GRANT <角色>[,<角色>]...
TO <角色>...
[WITH ADMIN OPTION]
例子:
将角色R1授予角色R2,且不可传播。
GRANT R1
TO R2;
将角色R1授予角色R3,可以传播
GRANT R1
TO R3
WITH ADMIN OPTION;
(2)将一个角色授予用户
GRANT <角色>[,<角色>]...
TO <用户>...
[WITH ADMIN OPTION]
例子:
将角色R1授予用户U1,且不可传播。
GRANT R1
TO U1;
将角色R1授予用户U2,可以传播。
GRANT R1
TO U2
WITH ADMIN OPTION;
4、角色权限回收
一般格式:
REVOKE <权限> [ , <权限>]...
ON <对象类型> <对象名>
FROM <角色> [,<角色>] ...
例子:将角色R1查询Student表的权限收回。
REVOKE SELECT
ON TABLE Student
FROM R1;