- 在登录sa的状态下使用grant(授予), revoke(收回), deny(拒绝);除非后续给了其他用户这些权限
- 基本结构中均以select为例
- 最好写完语句后面加个go
- 记得开头写:
use 你要进行操作的数据库名字
go
- 可能登录sa也提示没有grant权限之类的,多半是因为切换用户太频繁……退出sql server重新打开试试(我就是折腾半天发现重新打开就行……悲伤)
grant
基本结构
grant select
on table_name
to user_name
变型
- 可以同时授予多个功能,如:代码第一行改为
grant select, delete, insert
- 可以不写第二行,直接对整个数据库进行操作
- 如果希望被授予权限1的用户a,之后还可以给其他用户授予权限1,可将代码第三行改为:
to user_name with grant option
revoke
基本结构
revoke select
on table_name
from user_name cascade
注
- 同样代码第二行可不写
- 代码第三行的cascade一般是要加的,不加可能报错让你加上……
deny
基本结构
deny select
on table_name
to user_name cascade
注
- 同样代码第二行可不写
- 同样cascade最好加上
与revoke的不同
- revoke(收回):可以收回grant,也可收回deny(此处收回可理解为取消的意思)
- deny(拒绝):这个权限用户还是有的,只不过状态为“拒绝(不能用)”
- 利用以下语句可以查询user_name所拥有的权限
exec sys.sp_helprotect NULL,user_name
例
HelloWorld 是数据库名
a 是用户名
授予的权限为select