之前在進(jìn)行機(jī)房收費系統(tǒng)個人重構(gòu)的時候,配置文件訪問數(shù)據(jù)庫,用的是這類方式,如:
這兩天在學(xué)習(xí)MVC的時候,在設(shè)置配置文件的時候發(fā)現(xiàn),鏈接數(shù)據(jù)庫用的是另外1種方式:
重點就在Integrated Security=SSPI這1句,有甚么區(qū)分么??
安裝時,若按默許操作(windows身份驗證模式),則sql server會將當(dāng)前的windows賬戶及其密碼作為windows驗證模式的內(nèi)嵌登錄名(BUILTINAdministrators)和密碼,從而在使用windows驗證模式時,不需要指定登錄名和密碼。固然,在此也能夠指定其他的windows賬戶作為windows驗證模式的內(nèi)嵌登錄名,依照提示修改便可。Windows驗證模式只允許以windows驗證模式進(jìn)行連接,即使SSMS中可以選擇sql server模式,但會致使連接失敗。
如果安裝時選擇“混合模式”,則必須指定sa登錄名的密碼,從而添加了1個sql server身份驗證的登錄名。
windows 身份驗證相對混合模式更加安全,使用本連接模式時候,sql server僅根據(jù)用戶的windows權(quán)限來進(jìn)行身份驗證,我們稱為“信任連接”,但是在遠(yuǎn)程連接的時候會因NTML驗證的原因,沒法登陸。
混合模式驗證就比較復(fù)雜,當(dāng)本地用戶訪問sql時候采取windows身份驗證建立信任連接,當(dāng)遠(yuǎn)程用戶訪問時由于未通過windows認(rèn)證,而進(jìn)行sql server認(rèn)證(使用sa的用戶也能夠登錄sql),建立“非信任連接”,從而使得遠(yuǎn)程用戶也能夠登錄。
準(zhǔn)確來講,混合身份驗證模式,也就是基于Windows身份驗證和SQL Server身份混合驗證。在這個模式中,系統(tǒng)會判斷賬號在Windows操作系統(tǒng)下是不是可信,對可信連接,系統(tǒng)直接采取Windows身份驗證機(jī)制,而非可信連接,這個連接不但包括遠(yuǎn)程用戶還包括本地用戶,SQL Server 會自動通過賬戶的存在性和密碼的匹配來進(jìn)行驗證。
windows驗證模式和sql server驗證模式的登錄名,區(qū)分在于權(quán)限,這是毛病的。這兩種驗證方式的區(qū)分,其實不是在于權(quán)限。并沒有誰的權(quán)限高、誰的權(quán)限低之說。不論是windows驗證方式的默許登錄名、sql server方式的sa或其他自己添加的登錄名,只要在sql server中為該登錄名設(shè)置了相應(yīng)數(shù)據(jù)庫及表的權(quán)限,他就具有對操作權(quán)限。
SSPI:Security Support Provider Interface(Microsoft安全支持提供器接口),定義得較全面的公用API,用來取得驗證、信息完全性、信息隱私等集成安全服務(wù),和用于所有散布式利用程序協(xié)議的安全方面的服務(wù)。
===========================================
Integrated Security 身份驗證方式
當(dāng)為False時,將在連接中指定用戶ID和密碼。
當(dāng)為True時,將使用當(dāng)前的Windows帳戶憑據(jù)進(jìn)行身份驗證。
可辨認(rèn)的值為True、False、Yes、No和與True等效的SSPI。
============================================
為了保證數(shù)據(jù)庫的安全建議盡量使用Windows驗證模式,Windows 身份驗證使用1系列加密消息驗證 SQL Server 中的用戶。 使用 SQL Server 登錄時,會通過網(wǎng)絡(luò)傳遞 SQL Server 登錄名和密碼,這樣會下降它們的安全性。