问题描述
我知道如何使用 xp_cmdshell 来获取本地目录的列表。 下面的语句为我提供了目录 C:\TEST 中的 cvs 文件列表。 我在本地安装的 SSMS 中运行了该语句。
EXEC Master..xp_cmdshell 'dir C:\TEST\*.csv /b'
然而,
EXEC Master..xp_cmdshell 'dir \\ip-adress\share\folder\*.csv /b'
返回“无访问权限”。
但是在我的命令外壳中运行 dir \\ip-adress\share\folder\*.csv /b
确实会返回一个列表。显然我作为用户有足够的权利。那么为什么 xp_cmdshell 会返回“访问被拒绝”?
xp_cmdsHell 是否无法用于共享或与发出命令的帐户有关?但是,如果我在本地启动 SSMS,该命令不应该在我的 WINdowsaccount 下本地运行吗?和 commandshell 一样吗?
解决方法
我根据自己的凭据使用了 SSIS 代理,但看起来运行 SQL Server 的机器被阻止访问该共享