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