0

我是 SQL Server 的初学者。当我尝试运行代码时:

'EXEC xp_cmdshell 'bcp "SELECT * FROM sysfiles" queryout "D:\sysobjects.txt" -T -c -t'

我收到此错误:

[Microsoft][SQL Server Native Client 11.0]Unable to open BCP host data-file NULL
4

1 回答 1

0

运行时xp_cmdshell,SQL server 将启动一个新进程。运行此进程的用户可能会有所不同,具体取决于配置为运行 SQL Server 的用户以及是否启用了 SQL 代理。

要查找命令以哪个用户身份运行(我假设服务器上至少有 Windows 7),请执行:

EXEC xp_cmdshell 'whoami & cd & path'

第一行将是正在运行的用户xp_cmdshell,第二行显示进程的工作目录是什么,其余将列出路径中的文件夹。

要检查有效权限,请使用资源管理器导航到:

  • "d:\" 属性
  • 安全
  • 先进的
  • 有效权限
  • “选择”并输入从返回的名称whoami

例如,在我的系统上,whoami 返回nt authority\network service,这是NETWORK SERVICE为了有效的安全对话。

路径输出将包括一个“SQL server\xxx\binn”文件夹,检查其中的第一个是否与您连接的服务器正在运行的 SQL 版本匹配 - 否则您可能必须明确指定路径。

于 2015-05-13T09:51:21.750 回答