SQL Server 中的身份認證講解
TIME:2009-4-22 | READ:228
Microsoft SQL Server 可以在兩種安全(身分識別驗證)模式之一下工作:
- Windows 身分識別驗證模式(Windows 身分識別驗證)
Windows 身分識別驗證模式使使用者得以通過 Microsoft Windows NT 4.0 或 Windows 2000 使用者帳戶進行串連。
- 混合模式(Windows 身分識別驗證和 SQL Server 身分識別驗證)
混合模式使使用者得以使用 Windows 身分識別驗證或 SQL Server 身分識別驗證與 SQL Server 執行個體串連。在 Windows 身分識別驗證模式或混合模式下,通過 Windows NT 4.0 或 Windows 2000 使用者帳戶串連的使用者可以使用信任連接。
提供 SQL Server 身分識別驗證是為了向後相容。例如,如果建立單個 Windows 2000 組並向該組添加所需的所有使用者,則需要授予 Windows 2000 組登入到 SQL Server 的許可權以及對任何必需資料庫的存取權限。
Windows 身分識別驗證
當使用者通過 Windows NT 4.0 或 Windows 2000 使用者帳戶進行串連時,SQL Server 通過回叫 Windows NT 4.0 或 Windows 2000 以獲得資訊,重新驗證帳戶名稱和密碼。
SQL Server 通過使用網路使用者的安全特性控制登入訪問,以實現與 Windows NT 4.0 或 Windows 2000 的登入安全整合。使用者的網路安全特性在網路登入時建立,並通過 Windows 網域控制站進行驗證。當網路使用者嘗試串連時,SQL Server 使用基於 Windows 的功能確定經過驗證的網路使用者名。SQL Server 於是驗證此人是否是如其所說的那個人,然後只基於網路使用者名允許或拒絕登入訪問,而不要求單獨的登入名稱和密碼。
登入安全整合在 SQL Server 中任何受支援的網路通訊協定上運行。
說明 如果使用者試圖通過提供空白登入名稱稱串連到 SQL Server 的執行個體,SQL Server 將使用 Windows 身分識別驗證。此外,如果使用者試圖使用特定的登入串連到配置為 Windows 身分識別驗證模式的 SQL Server 執行個體,則將忽略該登入並使用 Windows 身分識別驗證。
與 SQL Server 身分識別驗證相比,Windows 身分識別驗證有某些優點,主要是由於它與 Windows NT 4.0 和 Windows 2000 安全系統的整合。Windows NT 4.0 和 Windows 2000 安全系統提供更多的功能,如安全驗證和密碼加密、審核、密碼到期、最短密碼長度,以及在多次登入請求無效後鎖定帳戶。
由於 Windows NT 4.0 和 Windows 2000 使用者和組只由 Windows NT 4.0 或 Windows 2000 維護,因此當使用者進行串連時,SQL Server 將讀取有關該使用者在組中的成員資格資訊。如果對已連線的使用者的可存取權限變更,則當使用者下次串連到 SQL Server 執行個體或登入到 Windows NT 4.0 或 Windows 2000 時(取決於更改的類型),這些更改會生效。
說明 當 SQL Server 執行個體在 Windows 98 或 Microsoft Windows Millennium 版上運行時,Windows 身分識別驗證模式不可用。
SQL Server 身分識別驗證
當使用者用指定的登入名稱稱和密碼從非信任連接進行串連時,SQL Server 通過檢查是否已設定 SQL Server 登入帳戶,以及指定的密碼是否與以前記錄的密碼匹配,自己進行身分識別驗證。如果 SQL Server 未設定登入帳戶,則身分識別驗證將失敗,而且使用者收到錯誤資訊。
提供 SQL Server 身分識別驗證是為了向後相容性,因為為 SQL Server 7.0 版或更早的版本編寫的應用程式可能要求使用 SQL Server 登入和密碼。另外,當 SQL Server 執行個體在 Windows 98 上運行時,必須使用 SQL Server 身分識別驗證,因為在 Windows 98 上不支援 Windows 身分識別驗證模式。因此,SQL Server 在 Windows 98 上運行時使用混合模式(但只支援 SQL Server 身分識別驗證)。
應用程式開發人員和資料庫使用者也許更喜歡 SQL Server 身分識別驗證,因為他們熟悉登入和密碼功能。對於串連到 Windows NT 4.0 和 Windows 2000 用戶端以外的其它用戶端,可能也必須使用 SQL Server 身分識別驗證。
說明 當使用具名管道串連到在 Windows NT 4.0 或 Windows 2000 上啟動並執行 SQL Server 執行個體時,使用者必須有串連到 Windows NT 具名管道 IPC //<computername>/IPC$ 的許可權。如果使用者沒有串連許可權,則不能使用具名管道串連到 SQL Server 執行個體,除非電腦上的 Windows NT 4.0 或 Windows 2000 guest 帳戶已啟用(預設情況下禁用),或者給使用者帳戶授予"從網路訪問該電腦"的許可權。