2012-11-16 63 views
4

我正在使用Microsoft SQL Server 2008 R2,並嘗試通過bcp(使用計劃的作業)轉儲表。首先我用xp_cmdshell實現它,但是我聽說,由於安全原因應該避免這種情況。bcp - 通過xp_cmdshell轉儲與sp_oaMethod安全

所以我的問題:什麼是關於sp_oaMethod?它應該被使用嗎?如果不是,爲什麼不呢?你能否提出其他可能性?

+0

我最近遇到了使用'sp_oa ...'和寫入文件(FSO)的可靠性問題,並且沒有任何問題移動到xp_cmdshell。我從未找到原因。不是一個答案,但可以幫助你決定你是否在圍牆上。 –

+0

感謝您的回覆......我不允許再使用xp_cmdshell - 這僅僅是由於安全問題,而不是因爲功能的原因 – user1830058

+0

當您可以使用CLR支持時,爲什麼要使用sp_OA%過程?這會更好,並會給你更多的靈活性。雖然如果你只是想運行bcp.exe,那麼你可以簡單地把它放在一個批處理文件中,並從SQL Agent作業調用它,甚至直接調用bcp.exe。 – Pondlife

回答

1

xp_cmdshell更好的解決方案是使用類型爲「CmdExec」或 「Powershell」的SQL代理作業步驟。

CmdExec將我傾向於撥打BCP.exe的單線電話。系統管理員憑據需要創建作業步驟。

Powershell是你的答案,如果你需要執行任何額外的任務,例如壓縮提取的文件並將其複製到網絡共享。