授予 AD 組編輯所有 MSSQL 代理作業的權限
我們有一個團隊,我們都使用我們的 Active Directory 帳戶通過 Windows 身份驗證從 SSMS 登錄 MSSQL Server。
我們的 AD 帳戶被添加到一個 AD 組,該組用於授予對 MSSQL 的所有權限。為簡單起見,我們不直接向我們的帳戶授予任何權限,並且為了安全起見,我們不使用本地 MSSQL 帳戶。
我們正在努力設置權限,以便每個人(在 AD 組中)都能夠列出、查看、編輯、啟動、停止、啟用、禁用等 MSSQL 代理作業,並在 CmdExec 步驟上**列出和設置代理。**誰創造了每個工作並不重要,我們都應該可以完全訪問所有工作。
我在Google上搜尋過,在這裡閱讀答案,自己提出了一個問題。我閱讀了SQL Server Agent Fixed Database Roles文件並註意到這
SQLAgentOperatorRole
是最高權限的角色,並且仍然沒有對所有作業的完全訪問權限。有沒有辦法為 AD 組設置這種權限?
如果沒有,我的下一條路徑將是創建一個本地 MSSQL 帳戶,拒絕它對所有數據庫的 R/W 權限,然後每個人都會知道它的密碼,並從中創建和管理所有作業。但我真的不想做這樣的事情。
只有 sysadmin 角色的使用者可以通過 SSMS 對象資源管理器編輯他們不是所有者的作業,因此如果您將所有使用者添加到具有 sysadmin 伺服器角色的 AD 組,它會起作用,但您可能不會不想那樣做。
正如@MSSQLServerDBA 所說,只有系統管理員可以更改另一個使用者的作業或更改作業的所有者。但是這樣做的原因是任何可以做到這一點的使用者實際上都是系統管理員。
SQL 代理 TSQL 作業步驟始終作為代理服務連接,該代理服務始終是系統管理員,但在作業步驟之前代理模擬作業所有者
EXECUTE AS LOGIN = N'JobOwner' WITH NO REVERT
因此,如果使用者可以更改系統管理員擁有的作業,或將作業重新分配給系統管理員,則該使用者可以以系統管理員的身份執行任意命令。