网络共享上的 SQL Server xp_cmdshell 'access is denied'



我使用xp_cmdshell从网络共享中获取文件信息,如下所示:

EXEC master..xp_cmdshell 'dir \Serversharefolder'

但我得到输出'access is denied'

我发现我的帐户是NT Servicemssqlserver,无法访问本地系统。在我的情况下,我无法将服务帐户更改为本地系统,因为这需要重新启动服务。

有没有办法访问NT服务或我能做的任何事情?谢谢你的帮助。

如果您使用的是域:

  • 您可以将共享访问权限授予运行SQL server的服务器的计算机帐户。例如,如果SQL Server在SERVER1上运行,并且您需要访问SERVER2上的共享,则应向YOURDOMAINSERVER1$授予读取权限。这将允许通过网络访问在SERVER1上运行的任何服务(本地系统、网络服务、任何NT服务(访问该共享,换句话说,除了在本地服务或特定用户帐户下运行的服务之外的所有服务
  • 一个更好的选择(正如评论中已经指出的(是更改SQL Server的服务帐户,使用您授予其适当共享权限的域用户

如果你不使用域名,我相信唯一的选择是:

  • 将共享访问权限授予Everyone或Guest(不推荐(
  • 使用在两台计算机上具有相同密码的本地用户更改SQL Server的服务帐户
  • 使用Microsoft帐户更改SQL Server的服务帐户

最新更新