SQLServer xp_instance_regread returned error 5,Access is denied(配置最小权限)

公司一套智能巡检系统,客户需要最小的权限去给这套系统使用;配置完后发现很多权限报错,有一条是关于xp_instance_regread读系统注册表error 5的报错。常理error 5.是属于系统权限问题,遂开始首先对需求注册表路径添加了everyone 的只读权限。如果能成功就不会写这个笔记了。

系统:windows2008R2

数据库: SQLServer2008R2

 

首先创建SQL账号:

其次赋予对xp_instance_regread权限

use master 

go

grant exec on xp_instance_regread to monitor;

 

execute as user='monitor'

go

exec xp_instance_regread 'HKEY_LOCAL_MACHINE','HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0','ProcessorNameString';

报错如下图:

 

 

 

原因就是sql账号没权限读注册表。

下面是添加注册表:

打开服务器 运行 输入 regedit :依次找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\

然后展开分支:找到依MSSQL开头SQLSERVER结尾的那层目录,找到MSSQLServer目录展开

然后新建一个键值命名为:ExtendedProcedures

点击ExtendedProcedures,在右侧空白处新建Multi-String类型的命名为xp_regread allowed paths;

然后打开xp_regread allowed paths这个文件,添加你要用数据库账号读的注册表路径;

如下图:

 

 

 

 添加你要读的注册表路径:

最后测试:

 

 

 

 

 

 

 这只是一种方法,这中问题遇到的概率很少,添加sysadmin权限也可以,把sql账号换成域账号也可以,估计服务器账号不识别没有服务器权限的sql账号。

转载于:https://www.cnblogs.com/kingwwz/p/9437550.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值