05-拒绝了对对象'server'的VIEW SERVER STATE权限

1、错误描述

消息 300,级别 14,状态 1,第 1 行
拒绝了对对象 'server' (数据库 'master')的 VIEW SERVER STATE 权限。
消息 297,级别 16,状态 1,第 1 行
用户没有执行此操作的权限。

 2、原因描述

一个只具有public服务器角色的用户,想要查询系统的动态视图,报出的错误;

3、解决办法

方法一:如果可以给用户sysadmin服务器角色的话,直接赋予即可(但是这种情况大部分公司都是不允许的)

 方法二:直接赋予某个用户view server state的权限

命令:grant view server state to chaxun

 取消权限的脚本如下:(下面2条SQL的任何一条都可以实现)

revoke view server state to chaxun  ---撤销该权限

deny view server state to chaxun  ---拒绝该权限

 

 方法三:赋予public角色view server state的权限

注:赋予public角色这个权限后,所有具有public角色的用户都可以查看服务器级别的资源了(系统视图,系统存储过程等)

命令:grant view server state to public

 取消权限的脚本如下:(下面2条SQL的任何一条都可以实现)

revoke view server state to public   ---撤销该权限

deny view server state to public  ---拒绝该权限

 

 

Tips:

revoke和deny取消权限的区别是什么?

答:

       deny:指的是拒绝某一用户的某一权限,在服务器权限的系统视图(sys.server_permissions)里不会删除该用户的权限这一行记录,只是把状态改为了D

      

 

        revoke:指的是撤销某用户的某一权限,在服务器权限的系统视图(sys.server_permissions)里会删除该用户的权限这一行记录

      

 

posted @ 2020-07-28 13:50  佳蓝雨  阅读(2950)  评论(1编辑  收藏  举报