某日,A君問起Windows身份驗證模式和混合模式驗證的區別與優缺時,根據安全性的考慮,按照到了此文做爲參考,學習下~ 數據庫
在安裝過程當中,必須爲數據庫引擎選擇身份驗證模式。 可供選擇的模式有兩種:Windows 身份驗證模式和混合模式。 Windows 身份驗證模式會啓用 Windows 身份驗證並禁用 SQL Server 身份驗證。 混合模式會同時啓用 Windows 身份驗證和 SQL Server 身份驗證。 Windows 身份驗證始終可用,而且沒法禁用。 安全
若是在安裝過程當中選擇混合模式身份驗證,則必須爲名爲 sa 的內置 SQL Server 系統管理員賬戶提供一個強密碼並確認該密碼。 sa 賬戶經過使用 SQL Server 身份驗證進行鏈接。 服務器
若是在安裝過程當中選擇 Windows 身份驗證,則安裝程序會爲 SQL Server 身份驗證建立 sa 賬戶,但會禁用該賬戶。 若是稍後更改成混合模式身份驗證並要使用 sa 賬戶,則必須啓用該賬戶。 您能夠將任何 Windows 或 SQL Server 賬戶配置爲系統管理員。 因爲 sa 賬戶廣爲人知且常常成爲惡意用戶的攻擊目標,所以除非應用程序須要使用 sa 賬戶,不然請勿啓用該賬戶。 切勿爲 sa 賬戶設置空密碼或弱密碼。若要從 Windows 身份驗證模式更改成混合模式身份驗證並使用 SQL Server 身份驗證,請參閱更改服務器身份驗證模式。 學習
當用戶經過 Windows 用戶賬戶鏈接時,SQL Server 使用操做系統中的 Windows 主體標記驗證賬戶名和密碼。 也就是說,用戶身份由 Windows 進行確認。 SQL Server 不要求提供密碼,也不執行身份驗證。 Windows 身份驗證是默認身份驗證模式,而且比 SQL Server 身份驗證更爲安全。 Windows 身份驗證使用 Kerberos 安全協議,提供有關強密碼複雜性驗證的密碼策略強制,還提供賬戶鎖定支持,而且支持密碼過時。 經過 Windows 身份驗證完成的鏈接有時也稱爲可信鏈接,這是由於 SQL Server 信任由 Windows 提供的憑據。 spa
安全說明 |
---|
請儘量使用 Windows 身份驗證。 操作系統 |
當使用 SQL Server 身份驗證時,在 SQL Server 中建立的登陸名並不基於 Windows 用戶賬戶。 用戶名和密碼均經過使用 SQL Server 建立並存儲在 SQL Server 中。 經過 SQL Server 身份驗證進行鏈接的用戶每次鏈接時必須提供其憑據(登陸名和密碼)。 當使用 SQL Server 身份驗證時,必須爲全部 SQL Server 賬戶設置強密碼。有關強密碼的指南,請參閱強密碼。 ci
可供 SQL Server 登陸名選擇使用的密碼策略有三種。 開發
用戶在下次登陸時必須更改密碼 get
要求用戶在下次鏈接時更改密碼。 更改密碼的功能由 SQL Server Management Studio 提供。 若是使用該選項,則第三方軟件開發人員應提供此功能。 it
強制密碼過時
對 SQL Server 登陸名強制實施計算機的密碼最長使用期限策略。
強制實施密碼策略
對 SQL Server 登陸名強制實施計算機的 Windows 密碼策略。 這包括密碼長度和密碼複雜性。 此功能須要經過 NetValidatePasswordPolicy API 實現,該 API 只在 Windows Server 2003 和更高版本中提供。
在「開始」菜單上,單擊「運行」。
在「運行」對話框中,鍵入 secpol.msc,而後單擊「肯定」。
在「本地安全設置」應用程序中,依次展開「安全設置」、「賬戶策略」,而後單擊「密碼策略」。
密碼策略將如結果窗格中所示。
若是用戶是具備 Windows 登陸名和密碼的 Windows 域用戶,則還必須提供另外一個用於鏈接的 (SQL Server) 登陸名和密碼。 記住多個登陸名和密碼對於許多用戶而言都較爲困難。 每次鏈接到數據庫時都必須提供 SQL Server 憑據也十分煩人。
SQL Server 身份驗證沒法使用 Kerberos 安全協議。
SQL Server 登陸名不能使用 Windows 提供的其餘密碼策略。
容許 SQL Server 支持那些須要進行 SQL Server 身份驗證的舊版應用程序和由第三方提供的應用程序。
容許 SQL Server 支持具備混合操做系統的環境,在這種環境中並非全部用戶均由 Windows 域進行驗證。
容許用戶從未知的或不可信的域進行鏈接。 例如,既定客戶使用指定的 SQL Server 登陸名進行鏈接以接收其訂單狀態的應用程序。
容許 SQL Server 支持基於 Web 的應用程序,在這些應用程序中用戶可建立本身的標識。
容許軟件開發人員經過使用基於已知的預設 SQL Server 登陸名的複雜權限層次結構來分發應用程序。
注意 |
---|
使用 SQL Server 身份驗證不會限制安裝 SQL Server 的計算機上的本地管理員權限。 |
via:http://technet.microsoft.com/zh-cn/library/ms144284.aspx