试图理解 xp_cmdShell

问题描述

我知道如何使用 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 的机器被阻止访问该共享