作者丨Lokesh Joshi
譯者 | 康少京
審校丨Noe
身份驗證是任何安全策略的關鍵。它可以保證特定人的身份真實有效,并且行為過程也具有一定的真實性。簡而言之,它是一種確定某人或某物是否“恰如其名”的行為。
對于微軟SQL Server,有兩種不同的身份驗證模式,即Windows模式和混合模式。這兩種模式決定了系統如何驗證或識別特定用戶。
如果選擇Windows認證方式,實際上是禁用SQL認證方式,允許Windows認證方式。另一方面,如果你選擇混合身份驗證模式,相當于允許Windows和SQL Server身份驗證模式。因為無法禁用 Windows 身份驗證模式,它始終保持活躍的狀態。
在本篇文章中,我們將討論Windows身份驗證模式和SQL Server身份驗證模式之間的區別。首先,我們了解這些身份驗證模式的確切含義。
什么是 Windows身份驗證模式?
為微軟SQL Server選擇Windows身份驗證模式時,必須提供Windows帳戶的登錄憑據才能訪問數據庫服務器。基本上,此模式不會根據特定SQL的登錄憑據對用戶進行身份驗證。相反,它會根據用戶的Windows帳戶驗證用戶的身份。
這種模式背后的主要思想是,首先,你需要在Active Directory中對自己進行身份驗證。稍后,SQL Server通過操作系統中的Windows主體令牌驗證你的身份。
在這種身份驗證模式下,SQL Server的用戶身份驗證依賴于Windows操作系統。因此,它有時也稱為集成安全性。
當你使用Windows身份驗證模式連接到SQL Server時,SQL Server不會驗證你的身份。相反,Windows會完成這一切,因為它是默認的身份驗證模式。另外,這種模式比SQL Server身份驗證模式更安全。
優點
- Windows身份驗證模式利用Kerberos身份驗證協議。因此,它是連接到SQL Server的一種安全方法。它利用令牌和服務主體名稱 (SPN) 來驗證用戶的身份。
- 該模式不會通過網絡傳輸你的密碼。因此,它可以保護你的密碼不被盜。
- 使用此模式時,SQL Server不會保存你的登錄憑據。
- 由于此模式利用Kerberos安全協議,你可以實施各種密碼策略,包括密碼過期、帳戶鎖定和復雜密碼。
缺點
- 當你選擇Windows身份驗證模式連接到SQL Server時,所有用戶都必須是Active Directory的一部分。
- 數據庫管理員對Active Directory登錄沒有任何控制權。
什么是SQL Server身份驗證模式?
在SQL Server身份驗證模式下,用戶名和密碼是在SQL Server中創建的,而不是基于Windows帳戶。使用此身份驗證模式時,你將創建不同的用戶名和密碼并將其保存在SQL Server中。
每當你需要連接到SQL Server時,都必須提供存儲在SQL Server中的登錄憑據。這與Windows帳戶的憑據無關。另外,需要注意的是,必須為你的SQL Server帳戶設置一個安全性強的用戶名和密碼。
對于SQL Server登錄,可以使用三種可選的密碼策略,如下所示:
- 用戶應在下次連接到SQL Server時更改密碼。
- 你還可以強制執行密碼過期策略,在密碼過期后需要更改密碼。
- 第三個選項是對SQL Server登錄強制執行Windows登錄策略。它需要冗長的密碼和復雜性。
優點
- 該模式使SQL Server能夠支持需要SQL Server身份驗證的舊應用程序和第三方應用程序。
- 它允許SQL Server支持具有混合操作系統的環境。
- 允許任何用戶連接到SQL Server。
- SQL Server支持網站并允許用戶創建自己的身份。
缺點
- 每次要連接到SQL Server時,都需要提供登錄憑據。
- 你需要記住用戶名和密碼。如果你有多個SQL Server實例,那么記住所有這些憑據會變得很困難。
- 黑客有可能會竊取你的憑據,因為它們以加密形式存儲在主數據庫中。
- 不使用Kerberos安全協議。
Windows身份驗證模式與SQL Server身份驗證模式
下表重點介紹了Windows身份驗證模式和SQL Server身份驗證模式的區別:
結論
我們對Windows和SQL Server身份驗證模式之間的差異的就先討論到這。在Windows身份驗證模式下,你可以通過Windows帳戶連接到SQL Server。另一方面,SQL Server身份驗證模式要求你創建存儲在SQL Server中的新用戶名和密碼。由于Windows身份驗證模式支持Kerberos協議,因此比SQL Server身份驗證模式更安全。
原文鏈接:
https://dzone.com/articles/differences-between-windows-and-sql-server-authentication
譯者介紹
康少京,51CTO社區編輯,目前從事通訊類行業,底層驅動開發崗位,研究過數據結構,Python,現對操作系統和數據庫等相關領域感興趣。