我們最近將所有數據庫從MyServerA
移至MyServerB
。一切都工作得很好的MyServerA
,但是當我嘗試調用使用xp_cmdshell
的bcp
命令,我收到以下錯誤:SQL Server無法打開BCP主機數據文件
Error = [Microsoft][SQL Server Native Client 11.0]Unable to open BCP host data-file
一些信息:
我敢肯定,我的用戶m登錄作爲
MyServerB
已分配給我試圖發佈到遠程服務器位置的權利。我在命令提示符下運行了「whoami」,併成功將它們添加到遠程文件夾(btw是共享的)的完全控制下的安全性。另外,我可以映射到它或很好地訪問它。有趣的是,當試圖發送一個已經存在的文件時,即從我試圖發送到的相同位置,作爲使用
sp_send_dbmail
的附件,我得到了Access denied
消息。所以這似乎是一個安全問題。但請參閱上面的#1。我也試過將它保存在本地
MyServerB
的文件夾中,但我也做不到。
示例代碼:從xp_cmdshell的
DECLARE @bcp varchar(2000);
SET @bcp = 'bcp "SELECT 1" queryout "\\MyServerA\Reports\MyFile.txt" -c -T -S MyServerB';
EXEC master..xp_cmdshell @bcp;
'bcp'是*不*文本輸出工具。你爲什麼不使用SSIS?您必須提升權限才能運行'xp_cmdshell'應該是一個警告。 –
無論如何,爲什麼從SQL Server內部運行'bcp'?您可以從命令行運行它,或者安排它在計劃任務中定期運行。您也可以安排命令從SQL代理運行。運行'xp_cmdshell'需要弱化安全性。 –
這是我繼承的東西。我現在被授權更新到SSIS或更改腳本或方法。這是以前的工作,他們希望它現在是固定的。謝謝你的建議。 – ptownbro