如何在sql server 2008中通过XP_CMDSHELL访问网络上的文件/文件夹?

时间:2011-11-02 09:43:55

标签: sql sql-server-2008 file-access xp-cmdshell

我正在尝试使用'EXEC MASTER..XP_CMDSHELL'访问文件夹/目录,它适用于本地文件/文件夹,但它无法通过网络访问该文件夹。

EXEC MASTER..XP_CMDSHELL 'c:\Images'  --Works fine
EXEC MASTER..XP_CMDSHELL '\\IPaddress\Images' -- returns "Access is denied."

请注意,我可以访问网络位置但不使用sql server。

Sql server在Winodws身份验证模式下运行。 Sql server正在使用'nt authority \ network service'帐户来访问远程文件夹。

此致

3 个答案:

答案 0 :(得分:1)

如果您运行xp_cmdshell'whoami.exe',它将告诉您运行该命令的帐户。如果此帐户在网络上没有权限,您将收到您所看到的错误。

检查SQL文档以更改此帐户/权限。

答案 1 :(得分:0)

运行SQL Server的帐号是什么? 你如何连接到SQL服务器?使用Windows身份验证? 你想要“C:\ images”做什么?在资源管理器中打开文件夹? 你使用过sp_xp_cmdshell_proxy_account吗?

答案 2 :(得分:0)

当你必须把文件,如BCP结果,或者备份放在远程驱动器中时,只需将此驱动器映射到windows中不起作用,它必须映射到SQL Server上!,为此,尝试一些链接像这样:

exec xp_cmdshell'net use p:\\ Server \ Folder \ Folder \ Folder \ / Domain \ Login / Password'

参考:https://social.msdn.microsoft.com/Forums/en-US/6eca2d62-eb86-4f23-9b86-6f917017f50c/bcp-utility-via-xpcmdshell-and-network-drive?forum=sqlsecurity