您的位置:首页 > 数据库

【SQL Server】grant, revoke, deny介绍及相关问题

2020-05-09 04:12 1166 查看
  • 在登录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

ambitionxzz 原创文章 4获赞 7访问量 922 关注 私信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: