1

有什么办法可以做到这一点?我可以完全控制本地和远程服务器。

4

2 回答 2

0

您可以像任何其他 SP 一样运行它。但请注意,您将仅获得有关远程文件的数据。如果您需要有关本地文件的数据,则无法在 SQL Server 端进行。您需要在客户端检查它并(如果您需要在服务器端使用这些数据)将其作为参数发送到 SQL Server。

于 2012-08-30T10:40:36.817 回答
0

如果我做对了,您尝试使用网络路径执行 xp_fileexist 以访问远程服务器,例如:

exec master.dbo.xp_fileexist "\\another_server\path\file"

如果您不能这样做,主要原因是 - 您的 SQLSERVER 服务在 LOCALSYSTEM 帐户下运行。该帐户是本地计算机帐户,无法访问网络(尽管据我所知,有一种方法可以将 server2 上的共享文件夹的访问权限从 server1 帐户授予本地系统)。因此,如果您将 SQL 服务器服务配置为在 DOMIAN\USER 下运行,您可以运行上述命令并获得正确的结果。还要注意,如果您在域帐户下运行 SQL 服务器,一旦用户有权访问您的 SQL 服务器,它就会在您的域安全系统中出现漏洞,它可以远程执行 XP_CMDSHELL ....

我只是在本地系统下运行的 SQL Server 2000 下对其进行了测试,然后重新配置为在域帐户下运行。

于 2012-08-30T10:44:55.883 回答