選擇一個SQL Server身份驗證模式

Microsoft SQL Server 2016為管理員提供了兩種實現系統認證用戶的選擇:Windows認證模式或混合認證模式。

Windows身份驗證意味著SQL Server僅使用他的Windows用戶名和密碼驗證用戶的身份。 如果用戶已經通過Windows系統進行身份驗證,則SQL Server不會要求輸入密碼。

混合模式意味著SQL Server同時啟用Windows身份驗證和SQL Server身份驗證。 SQL Server身份驗證會創建與Windows無關的用戶登錄名。

身份驗證基礎

認證是確認用戶或計算機身份的過程。 該過程通常由四個步驟組成:

  1. 用戶通常通過提供用戶名來聲明身份。
  2. 該系統挑戰用戶證明他或她的身份。 最常見的挑戰是請求密碼。
  3. 用戶通過提供請求的證據(通常是密碼)來回應挑戰。
  4. 系統通過例如根據本地密碼數據庫或使用集中認證服務器檢查密碼來驗證用戶是否提供了可接受的證據。

在我們對SQL Server身份驗證模式的討論中,關鍵點在於上面的第四步:系統驗證用戶身份證明的點。 認證模式的選擇決定 SQL Server去驗證用戶密碼的位置。

關於SQL Server身份驗證模式

讓我們進一步探索這兩種模式:

Windows身份驗證模式要求用戶提供有效的Windows用戶名和密碼以訪問數據庫服務器。 如果選擇此模式,SQL Server將禁用SQL Server特定的登錄功能,並且僅通過其Windows帳戶來確認用戶的身份。 由於SQL Server依賴Windows進行身份驗證,此模式有時稱為集成安全性

混合身份驗證模式允許使用Windows憑據,但使用管理員在SQL Server中創建和維護的本地SQL Server用戶帳戶進行補充。 用戶的用戶名和密碼都存儲在SQL Server中,並且用戶每次連接時都必須重新進行身份驗證。

選擇認證模式

Microsoft的最佳實踐建議是盡可能使用Windows身份驗證模式。 主要優點是使用此模式可以讓您將整個企業的帳戶管理集中在一個地方:Active Directory。 這大大減少了錯誤或疏忽的可能性。 由於用戶的身份由Windows確認,因此可以配置特定的Windows用戶和組帳戶以登錄到SQL Server。 此外,Windows身份驗證使用加密來驗證SQL Server用戶。

另一方面,SQL Server身份驗證允許用戶名和密碼在整個網絡中傳遞,從而使其不太安全。 但是,如果用戶從不同的不受信任的域進行連接,或者在使用可能不太安全的Internet應用程序(如ASP.NET)時,此模式可能是一個不錯的選擇。

例如,考慮受信任的數據庫管理員以不友好的條件離開您的組織的情況。 如果您使用Windows身份驗證模式,則在禁用或刪除DBA的Active Directory帳戶時會自動撤銷該用戶的訪問權限。

如果您使用混合身份驗證模式,則不僅需要禁用DBA的Windows帳戶,還需要梳理每個數據庫服務器上的本地用戶列表以確保不存在DBA可以知道該密碼的本地帳戶。 這是很多工作!

總之,您選擇的模式會影響組織數據庫的安全性和易維護性。