Windows

面對域組策略,如何管理虛擬賬戶的登錄服務權限?

  • March 21, 2022

我想使用使用虛擬帳戶 NT SERVICE\MSSQLSERVER 執行 SQL Server 服務的預設 SQL Server 設置。這樣可以確保我的 SQL Server 在自己的機器上具有有限的訪問權限,並且如果它應該被黑客入侵,則無法訪問網路資源。但是,我們的域也有一個組策略,為其他幾個(域)設置登錄即服務權限。

你可能已經猜到,甚至可能經歷過我的問題:

當域 GPO 應用於伺服器時(至少每天),它會撤消由 SQL Server 安裝程序(或 SQL Server Config Mgr 或其他本地電腦策略配置)完成的作為服務登錄權限分配。然後在下次重新啟動 SQL Server 服務時(可能是數小時或數月後),將階段設置為錯誤“服務未啟動”錯誤。

到目前為止,這是我所知道的:

  • 我無法將虛擬帳戶添加到域 GPO,因為它是電腦本地 SID。
  • 域組策略覆蓋本地機器組策略,所以我將不得不對域組策略做一些事情。

遺憾的是,使用者權限分配元素位於電腦設置\Windows 設置\安全設置\本地策略設置下,因為它無法引用本地電腦帳戶。也許它甚至是一個錯誤。

以下是我正在考慮的方法:

  • 我可以消除應用登錄即服務權限的域 GPO 元素,並通過本地組策略(在一堆伺服器上)執行此操作。
  • 我可以將伺服器移動到未應用此 GPO 元素的 OU 中。目前,有問題的 GPO 是我的預設域策略,所以我必須重構一些東西。
  • 我可以在每台 SQL Server 機器上執行一些工具,以便在域組策略執行之後或頻繁到我很少被抓到的情況下重新建立登錄即服務。

有沒有人可以提供其他建議或可行的解決方案?

如果您將組策略管理控制台添加到相關的 SQL 伺服器,您可以修改您正在談論的組策略設置以包括“NT Service\MSSQLSERVER”或任何其他“NT Service\xxxx”帳戶名稱。如果您在另一台伺服器上打開 GPO,您會看到一個大而長的 SID,而不是漂亮的“NT Service\xxxx”別名。您可以使用以下命令從管理員 powershell 會話中添加 gpmc.msc:

Install-WindowsFeature GPMC

添加這些“NT SERVICE\xxxx”帳戶的更好解決方案是添加內置的“NT SERVICE\ALL SERVICES”組 - 然後您不必單獨添加它們,它會顯示在在 GPMC 中查看時,在其他系統上也是一種人類可讀的格式。我在使用 Azure AD 同步服務時遇到了這個問題,然後再次使用為 RDS 部署安裝的 Windows 內部數據庫。我只能在已經有一些“NT SERVICE\xxxx”帳戶的機器上添加“NT SERVICES\ALL SERVICES”組。這裡有幾篇有助於解釋其工作原理的文章:

Install-ADSericeAccount 是否修改“NT SERVICE\ALL SERVICES” https://docs.microsoft.com/en-US/windows/security/identity-protection/access-control/security-identifiers

正如 Aaron D 所說,最好在 Active Directory 中創建一個服務帳戶,而不是使用內置的本地 NT 服務帳戶。如果您想走這條路,這裡有幾篇關於使用 Active Directory 託管服務帳戶的附加文章:

將託管服務帳戶與 SQL Server 一起使用

為 SQL Server 配置託管服務帳戶

我看到還沒有人回答,所以我給你我的 2 美分。

這是我想我會嘗試的:

  1. 創建一個名為 SQL Servers 的新 OU
  2. 將 SQL 電腦對象移動到該 OU
  3. 創建一個名為SQL 登錄即服務的新 GPO
  4. 添加預設域策略中的所有內容
  5. 在 Active Directory 中創建託管服務帳戶
  6. 將託管服務帳戶添加到登錄即服務列表

以下是我發現的幾個連結,它們也可能對您有所幫助:

配置 Windows 服務帳戶和權限

SQL Server 服務帳戶 Windows 權限和權限

引用自:https://serverfault.com/questions/872300