授权语句的基本语法
grant<权限1>,<权限2>……
on <对象类型1><对象名1>,<对象类型2><对象名2>……
to <用户1><用户2>……
[with grant option](可选,作用是确定能否再把此权限授予其他用户);
其中with grant option语句授权后不能循环授权
可授予的<权限>包括select、all privileges、update(可选行列名)、insert
例子1:把查询Student表的权限授给用户U1
grant select
on table Student
to U1;
例子2:把对Student表和Course表的全部操作权限授给用户U2和U3
grant all privileges
on table Student,Course
to U2,U3;
例子3:把查询Student表和修改学生学号的权限授给U4,并允许将此权限授予给其他用户
grant update(Sno),select
on table Student
to U4
with grant option;
收回语句的基本语法
revoke <权限1><权限2>……
on <对象类型1><对象1>,<对象类型2><对象2>
from <用户1><用户2>……(可选cascade/restrict);
cascade级联属性会收回此用户以及被此用户授权的用户的权限
例1:收回所有用户对SC表的查询权限
revoke select
on table SC
from public;
数据库角色的创建、授权与收回
- 数据库角色的创建
create role <角色名>
- 给角色授权
grant <权限1>,<权限2>……
on <对象类型> <对象名>
to <角色1>,<角色2>……
- 将一个角色授予其他的角色和用户
grant <角色1>,<角色2>……
to <角色1>,<角色2>……
(可选with grant option)
- 角色权限的收回
revoke <权限1>,<权限2>……
on <对象类型><对象名>
from <角色1>,<角色2>……
自主存取控制的特点
用户可以“自主地决定将数据的存取权限授予何人、决定是否也将’授权’的权限授予他人。因此称这样的存取控制是自主存取控制”