作為網路服務執行的 Windows 服務 - 它如何進行身份驗證?W2K8 中的重大變化?
作為“網路服務”執行的 Windows 服務使用 Windows 身份驗證與其他機器(此處為 SQL Server 和 Analysis Services)上的服務通信。對於身份驗證,我們必須授予服務的機器帳戶權限。例如,如果服務在域 MYDOMAIN 中的伺服器 MYSERVER 上執行,它將驗證自己為“MYDOMAIN\MYSERVER$”。- 到目前為止,我是對的嗎?
現在這是我的問題:在與同一台機器上的服務交談時這仍然適用嗎?或者它會在連接到本地服務時使用“NT AUTHORITY\Network Service”之類的東西進行身份驗證?
並且:這是否有可能是從 Windows 2003 到 Windows 2008 的重大變化?我們在我們的系統中遇到了一個實際問題,即該帳戶能夠連接到本地服務,而只有機器帳戶在 W2K3 中具有權限。在 W2K8 中,這似乎不再起作用:對本地服務的身份驗證現在失敗,但對遠端機器仍然有效。
本地網路服務將驗證為
NT AUTHORITY\Network Service
如果您希望您的 SQL 訪問本地資源(文件、應用程序、系統資料庫等),請不要向服務帳戶授予權限。而是將它們授予安裝期間自動創建 的 SQL Server 服務帳戶本地組,請參閱SQL Server Service Accounts :
SQLServerMSSQLUser$<hostname>$<instancename>
,其中<hostname>
是執行 SQL Server 的主機的機器名稱,<instancename>
是 SQL Server 實例名稱(預設實例名稱為 MSSQLSERVER )。這樣,您在更改服務帳戶時不必更改任何 ACL,因為更改 SQL 服務帳戶會將新帳戶添加到該組。