sql serve 授权与回收

自主存取控制方法:
对象类型	 		对象			操作类型
数据库模式		模式			create schema
				基本表			create table,alter table
				视图			create view
				索引			create index
数据			基本表和视图		select,insert,update,delete,references,all privileges
				属性列			select,insert,update,references,all privileges

grant语句的一般格式:

grant <权限>,<权限>……
on <对象类型> <对象名>,<对象类型> <对象名>
to <用户>,<用户>……
[with grant option}; //指定该子句:可以再转授权限;没有指定:不能转播权限

发出grant:

  • 数据库管理员
  • 数据库对象创建者(即属主Owner)
  • 拥有该权限的用户

按受权限的用户:

  • 一个或多个具体用户
  • public(即全体用户)

类型:将一种权限授予一个用户

将查询student表权限授给用户U1
grant select 
on table student
to U1

类型:一次向多个用户传播同类对象的权限

grant all privileges
on table student,course
to U2,U3

类型:授权给全部用户public

将对表sc的查询权限授予所有用户
grant select
on sc
to public

类型:一次完成对基本表和属性列这些不同对象的授权

把查询student表和修改学生学号的权限授给用户U4
grant update(sno),select
on student
to U4

类型:传播授权

把对表sc的insert权限授予U5用户,并允许他再将此权限授予其他用户
//	with grant option
grant insert
on sc
to U5
with grant option

revoke权限的一般格式:


revoke <权限>,<权限>.....
on <对象类型><对像名>,<对象类型><对象名>
from <用户>,<用户> /*从哪放权从哪回收*/

cascade:级联回收
restrict:受限回收
不允许循环授权:因为级联回收时找不到回收起点

类型:回收一个用户权限

把用户U4修改学生学号的权限回收
grant select
on student
from U4

类型:回收所有用户权限

收回所有用户对表sc的查询权限
revoke select
on sc 
from public

类型:级联回收-只回收所放出的权限

比如:从U5授权查询给U6,U6再授权给U7;
在U5上级联回收时,U6、U7从U5传播授权(插入)都被回收;
U6和U7从其他地方授权的不会被回收。
revoke insert 
on sc
from U5 cascade

你可能感兴趣的:(sql,server)