如何解决网络共享上的SQL Server xp_cmdshell'访问被拒绝'
我正在使用xp_cmdshell从网络共享中获取文件信息,如下所示:
EXEC master..xp_cmdshell 'dir \\Server\share\folder'
但是我得到了输出'access is denied'
我发现我的帐户是NT Service\mssqlserver
,无法访问本地系统。就我而言,我无法将服务帐户更改为本地系统,因为它将需要重新启动服务。
是否可以使用NT Service或我能做的任何事情来访问?感谢您的帮助。
解决方法
如果您使用的是域:
- 您可以将共享上的访问权限授予运行SQL Server的服务器的计算机帐户。例如,如果SQL Server在
SERVER1
上运行,并且您需要访问SERVER2
上的共享,则应向YOURDOMAIN\SERVER1$
授予读取权限。这将允许对具有网络访问权限的SERVER1上运行的任何服务(本地系统,网络服务,任何NT服务)(即除在本地服务或特定用户帐户下运行的那些服务之外的所有服务)对该共享的访问。 li> - 一个更好的选择(如注释中已经指出的)将是使用您为其授予了适当共享权限的域用户来更改SQL Server的服务帐户。
如果您不使用域,我相信唯一的选择是:
- 向所有人或访客授予共享访问权限(不推荐)
- 使用在两台计算机上具有相同密码的本地用户更改SQL Server的服务帐户
- 使用Microsoft帐户更改SQL Server的服务帐户
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。