C#——Web.config中的Integrated Security=SSPI,

來源:互聯網
上載者:User

C#——Web.config中的Integrated Security=SSPI,
    問題由來

    之前在進行機房收費系統個人重構的時候,設定檔訪問資料庫,用的是這種方式,如:  

   string="server=localhost;database=pubs;uid=sa;password=123456"
    

    這兩天在學習MVC的時候,在設定設定檔的時候發現,連結資料庫用的是另外一種方式: 

connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MVCMovie-20141126170450;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient"

    重點就在Integrated Security=SSPI這一句,有什麼區別嗎??


    資料庫的兩種身分識別驗證模式


   

   

    Windows身分識別驗證模式

    安裝時,若按預設操作(windows身分識別驗證模式),則sql server會將當前的windows賬戶及其密碼作為windows驗證模式的內嵌登入名稱(BUILTIN\Administrators)和密碼,從而在使用windows驗證模式時,不需要指定登入名稱和密碼。當然,在此也可以指定其他的windows賬戶作為windows驗證模式的內嵌登入名稱,按照提示修改即可。Windows驗證模式只允許以windows驗證模式進行串連,即便SSMS中可以選擇sql server模式,但會導致串連失敗。

    

    混合身分識別驗證模式

    如果安裝時選擇“混合模式”,則必須指定sa登入名稱的密碼,從而添加了一個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中為該登入名稱設定了相應資料庫及表的許可權,他就具有對於操作許可權。



    Intergrated Security =SSPI

    SSPI:Security Support Provider Interface(Microsoft安全支援提供器介面),定義得較全面的公用API,用來獲得驗證、資訊完整性、資訊隱私等整合安全服務,以及用於所有分布式應用程式協議的安全方面的服務。

      ===========================================
      Integrated Security 身分識別驗證方式 
      當為False時,將在串連中指定使用者ID和密碼。 
      當為True時,將使用當前的Windows帳戶憑據進行身分識別驗證。 
      可識別的值為True、False、Yes、No以及與True等效的SSPI。

      ============================================


     總結

    為了保證資料庫的安全建議儘可能使用Windows驗證模式,Windows 身分識別驗證使用一系列加密訊息驗證 SQL Server 中的使用者。 使用 SQL Server 登入時,會通過網路傳遞 SQL Server 登入名和密碼,這樣會降低它們的安全性。


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.