角色是权限的集合,可以为一组具有相同权限的用户创建一个角色,简化授权的过程
1. 角色的创建
CREATE ROLE <角色名>
2. 给角色授权
GRANT <权限>[,<权限>]…
ON <对象类型>对象名
TO <角色>[,<角色>]…
3. 将一个角色授予其他的角色或用户
GRANT <角色1>[,<角色2>]…
TO <角色3>[,<用户1>]…
[WITH ADMIN OPTION]
指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权限授予其他角色
4. 角色权限的收回
REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…
5. 综合例子
5.1 通过角色来实现将一组权限授予一个用户
(1)首先创建一个角色 R1
CREATE ROLE R1;
(2)然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限
GRANT SELECT, UPDATE, INSERT
ON TABLE Student
TO R1;
(3)将这个角色授予 王平,张明,赵玲
GRANT R1 TO 王平,张明,赵玲;
(4)可以一次性通过R1来回收 王平 的这3个权限
REVOKE R1 FROM 王平;
5.2 角色的权限修改
// 使角色R1在原来的基础上增加了Student表的DELETE 权限
GRANT DELETE
ON TABLE Student
TO R1;
// 使R1减少了SELECT权限
REVOKE SELECT
ON TABLE Student
FROM R1;