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