最近都在檢視各伺服器的「事件紀錄」,想要減少裡頭的無效資訊,以及處理錯誤資訊。這次在 SQL Server 上,固定都會出現一個這樣的錯誤訊息:
應用程式特定 權限設定無法將含有 CLSID {806835AE-FD04-4870-A1E8-D65535358293} 與 APPID {EE4171E6-C37E-4D04-AF4C-8617BC7D4914} 之 COM 伺服器應用程式的 本機 啟用 權限授與來自位址 LocalHost (使用 LRPC) (在應用程式容器 無法使用 SID (無法使用) 中執行) 的使用者 NT SERVICE\SQLSERVERAGENT SID (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430)。您可以使用元件服務系統管理工具修改此安全性權限。
一開始找到恆逸講師寫的 這篇 教學,但實際操作後,跟我的狀況稍微有點不同,我本身的 System 以及 Administrator 對出問題的 DCOM 元件 (Microsoft SQL Server Integration Services) 都已經有完整的「啟動」跟「啟用」權限了,後來試著在權限新增 “SQLSERVERAGENT”,但新增不了。
後來找到 “Tam 城市學習紀錄” 的 這篇 教學,才命中問題,原來是要輸入完整的名稱 “NT SERVICE\SQLSERVERAGENT”,以下為步驟:
◎ 開啟「元件服務」,在「DCOM 設定」中,切換成 “詳細資料” 的檢視模式。
◎ 逐一尋找事件紀錄中 APPID,以我來說,要尋找 “{EE4171E6-C37E-4D04-AF4C-8617BC7D4914}“。
◎ 最後可以找到對應的是「Microsoft SQL Server Integration Services 12.0」這個元件。
◎ 對該元件點選右鍵-「內容」,切換到「安全性」的頁面。
◎ 在「啟動和啟用權限」項目點選 “編輯”。
◎ 點選「新增」,準備新增 SQLSERVERAGENT 這個角色。
◎ 輸入”NT SERVICE\SQLSERVERAGENT”,按下確定。
◎ 將「本機啟動」、「本機啟用」的權限改為 “允許” 即可。
【參考連結】
- [MS SQL] 應用程式特定 權限設定無法將含有 CLSID | Tam 城市學習紀錄
- 恆逸講師技術文章發表UCOM TIPS
[…] 上週有寫一篇「應用程式特定權限設定無法將含有 CLSID – SQL」,當時是在 SQL Server 上的系統事件紀錄看到,出問題的權限則是在 SQLSERVERAGENT 這個角色,伺服器本身的權限是沒有問題的 (SYSTEM 及 Administrator)。今天在 AD 伺服器上也看到同樣訊息,而這次就是伺服器本身權限不足,因此需要多個從 regedit 重新取回權限的步驟。 […]