创建用户有关操作
sp_addlogin ts,123456;//创建新账户,账户名ts,密码为123456
sp_adduser ts,user1;//给数据库中创建用户,用户名为user1,作用于ts
sp_addrole teacher;//创建teacher角色
sp_addrolemember teacher,user1;//将用户user1赋予teacher角色
授权
Grant语句
Grant <权限>[,<权限>]
On <对象类型><对象名>[,<对象类型><对象名>]
To <用户> [,<用户>]
[with grant option]
//如果指定with grant option子句,则获得某种权限的用户还可以把这种权限再授予其他用户,如果没有指定,则只能使用,无法传播。
注意:通过实践,sql server中一个语句中只能给一个表对象授予某个权限,不能同时对多表进行授权
例:
grant all privileges
on table student
to u1//向u1用户授予对于表student操作的所有权限
Revoke语句
Revoke <权限>[,<权限>]…
On <对象类型><对象名>[,<对象类型><对象名>]…
From <用户>[,<用户>]…[cascade|restrict];
例:
Revoke update(sno)
On table student
From u4;//收回u4更新student表中的sno的权限
revoke select
on table sc
from public;//回收所有用户对表sc的查询操作
cascade为联级回收,当被授予权限的用户传播给其他用户权限时,必须使用联级回收,将传播的权限同时回收,否则无法系统将拒绝执行该命令。
数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合,因此可以为一组具有相同权限的用户创建一个角色。
角色的创建
create role <角色名>
例:
create role r1;
给角色授权
Grant <权限>[,<权限>]…
On <对象类型><对象名>
To <角色> [,<角色>]…
例:
grant select,update,insert
On table student
To r1;//授予r1角色对表student的查询,修改,插入数据的权限
将一个角色授予其他的角色或用户
Grant <角色1>[,<角色2>]…
To <角色3>[,<用户1>]…
[with admin option]
例:
grant r1
To u1;//将角色r1授予用户u1
角色权限的回收
Revoke <权限>[,<权限>]…
On <对象类型><对象名>
From <角色>[,<角色>]…
用户可以回收角色的权限,从而修改角色拥有的权限.
例:
revoke r1
From u1;//收回用户u1的角色r1.