sql DB身份驗證模式機制


    一直對數據庫的服務的開啓操作以及數據庫的遠程機械似的操作,卻從來不知道原因。沒有多去問一句爲什麼,糊塗到了現在。要複習軟考,看書後才懂得些。

從數據庫的細節角度上看。

SQL server是客戶端和服務器一體的軟件,在安裝的時候同時安裝了sql server configuration Manager(數據庫服務器 配置 管理),相當於"服務器",是通過系統或sql server configuaration來打開服務的。

       

而我們的SQL Server Management Studio (數據庫服務器; 管理; 工作室 )可以理解爲數據庫"應用程序" 相當於是一個對數據庫操作的"客戶端"。我們通過windows身份驗證或混合身份驗證,來操縱數據庫。

而從數據庫的外部體系結構來看。

數據庫和數據庫系統一系列封裝起來,這個整體就是一個服務器。或說是安裝這個軟件的並有實際數據的PC機吧。


具體的身份驗證方式解析。 

        

遠程連接sql server 數據庫,要進行身份驗證,系統對用戶登陸進行驗證,sql server和windows操作系統是緊密的集成在一起的。這也解答了我曾經的問題,把數據庫的"應用程序"關閉後,其他的應用程序(vb C# vb.net代碼)仍然可以訪問數據庫(數據庫服務開啓)。

                      


windows身份驗證:

sql server 通過使用windows操作系統來對登錄的帳號進行身份驗證,支持windows操作系統的密碼策略和賬戶策略, 帳號和密碼都保存在Windows的操作系統的賬戶數據庫中,是一個系統文件。 這種模式下 sql server服務器本身不負責身份驗證,客戶機只要是能訪問windows服務器,就可以訪問sql server 2000服務器,用戶不必登錄網路和sql server服務器。

特點:把身份驗證的工作交給windwos系統來完成,特點是"一次登錄"。


混合身份驗證:

是允許以sql server 身份驗證模式或者Windows身份驗證模式來進行驗證。在這種身份驗證模式下,當客戶機使用用戶帳號和密碼連接服務器時,sql server 首先在數據庫中查詢是否有相同的賬號和密碼,若有則接受連接。若數據庫中沒有相應的帳號和密碼,sql server 會向windows操作系統請求驗證客戶機的身份。沒有通過客戶機的身份則拒絕連接。

混合身份驗證與windows身份驗證的不同之處:

主要集中在信任連接和非信任連接。

windows 身份驗證相對於混合模式更加安全,使用本連接模式時候,sql不判斷sa密碼,而僅根據用戶的windows權限來進行身份驗證,我們稱爲“信任連接”,但是在遠程連接的時候會因NTML驗證的緣故,無法登陸。

混合模式驗證就比較既當本地用戶訪問sql時候採用windows身份驗證建立信任連接,當遠程用戶訪問時由於未通過windows認證,而進行sql server認證(使用sa的用戶也可以登錄sql),建立“非信任連接”,從而使得遠程用戶也可以登錄。

更加直接一些就是windows身份驗證,不驗證sa密碼,如果windows登錄密碼不正確,無法訪問sql,混合模式既可以使用windows身份驗證登錄,有可以在遠程使用sa密碼登錄。

準確來說,混合身份驗證模式,也就是基於Windows身份驗證和SQL Server身份混合驗證。在這個模式中,系統會判斷賬號在Windows操作系統下是否可信,對於可信連接,系統直接採用Windows身份驗證機制,而非可信連接,這個連接不僅包括遠程用戶還包括本地用戶,SQL Server 會自動通過賬戶的存在性和密碼的匹配性來進行驗證。比如當SQL Server實例在Windows 98上運行時,必須使用混合模式,因爲在Windows 98上不支持Windows身份驗證模式。

有些文字並不是咬文嚼字,甚至是錯誤的,望您指出。感謝。

也許是因爲學習是一個過程,也許是因爲第一次學習數據庫欠的"債"太多,總之那個階段的過程是混沌的過程。。。我的學習好像一直都是剛剛開始的樣子。。。

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章