SQL权限与角色
(一)权限
授权与收回
A授权 grant
格式:
grant <权限>,<权限>...
on <对象类型,对象名>...
to <用户>...
[with grant option]
(如果指定with grant option代表授权的用户还可以将此权限授予别人)
例子
1把查询Student 表的权限授予给用户U1
grant select
on table Student
to U1
2把student表和course表的全部权限授予给U2,U3
grant all privileges
on table studenr, course
to U2,U3
3把查询和修改权限授予给全部用户
grant update,select
on table Student
to public
4把对sc表的insert权限授予给U5并允许将此权限授予给其他用户
grant insert
on table sc
to u5
with grant option
B回收
2revoke
格式
revoke <权限>,<权限>....
on <对象类型><对象名>...
from<用户>...
[cascade|restrict]
(如果cascade|restrict中一个,则也回收他层分配过权限的级联用户)
例子
1把用户U5对sc表的insert权限回收
revoke insert
on table sc
from u5
cascade
(二)角色
角色是权限的集合
角色
1角色的创建
格式
create role <角色名>
2给角色授权
格式
grant <权限>...
on <对象类型><对象名>
to <角色>...
3将一个角色授予其他的角色
格式
grant <角色1>...
to <角色2>
[with asmin option]
(代表该角色或用户还可以将权限授予其他角色用户)
4角色权限的回收
格式
revoke<权限>....
on <对象类型><对象名>
to <角色>
例子
1创建R1对象
create role R1
2使R1拥有对Student表的select,update,insert权限
grant select,update,insert
on table student
to R1
3将这个角色授予给王平,张明,赵玲,使他们拥有R1这个角色的全部权限
grant R1
to 王平,张明,赵玲
4一次性回收王平的R1权限
revoke R1
from 王平
5在R1权限基础上增加delete权限
grant delete
on table student
to R1
6回收R1的select权限
revoke select
on table student
from R1
参考:书:《数据库系统概论》