Sql-Server

CMDEXEC 無法為步驟…創建程序(原因:訪問被拒絕)。步驟失敗

  • May 11, 2021

我創建了一個作業來測試執行一個CmdExec步驟。作業步驟只是使用dir命令執行批處理文件。

該作業作為 SQL Server 服務帳戶執行。此帳戶既是 SQL Server 的系統管理員,又是 Windows 的管理員。登錄也已被授予 exec 到 master 中的 xp_cmdshell。在表面積配置中,XPCmdShellEnabled = True. 如果我從查詢視窗執行命令,它將按預期執行。

問題:為什麼我仍然收到作業步驟錯誤?這是安裝了 SP2 的 SQL Server 2008 R2 的普通安裝。這裡沒有什麼好玩的。

注意:我知道這是多麼不安全,但這就是我要解決這個問題並嘗試解決這個錯誤的地方。我能說的最好的,這只是不能工作,而 BOL 讓它聽起來很容易。

好的,所以我沒有使用 CMDEXEC 作業步驟,而是將其更改回 t-SQL 腳本步驟,將批處理文件名替換為完整的字元串:

EXEC xp_cmdshell 'c:\dircommand.bat' 

它有效。所以我不確定作業系統作業步驟的問題是什麼,但此時我已經通過了障礙。有趣的是,我以另一種方式設置了另一台伺服器,它工作正常。感謝您提供幫助。

這篇文章看起來很舊,但我想我會發布一些東西以防其他人遇到這個問題。其他人(http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=35882)遇到了類似的問題,但他們能夠將工作所有者更改為 sa (顯然,工作所有者是使用者)它奏效了。我找到了@Tara 的文章,其中討論了“如何重置 SQLAgentCmdExec”。我不確定這是否是 OP 的問題。

引用自:https://dba.stackexchange.com/questions/136113