拒绝了对对象 ‘server‘ (数据库 ‘master‘)的 VIEW SERVER STATE 权限

本文介绍了当用户尝试查询系统动态视图但因权限不足而遇到错误时的解决方案。提供了三种方法来解决这个问题,包括直接赋予用户或public角色VIEWSERVERSTATE权限及撤销权限的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)里会删除该用户的权限这一行记录

      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值