SQLServer2000身分識別驗證與安全控制

來源:互聯網
上載者:User

http://netsecurity.51cto.com  2007-12-11 11:25  電腦基礎教程網  電腦基礎教程網  我要評論(0)

 

SQL Server 身分識別驗證模式
 
當" SQL Server 2000 在 Windows NT 或 Windows 2000 上運行時,sysadmin 固定伺服器角色成員可以指定下面兩種身分識別驗證模式之一:

Windows 身分識別驗證模式
只進行 Windows 身分識別驗證。使用者不能指定 SQL Server 2000 登入 ID。這是 SQL Server 2000 的預設身分識別驗證模式。不能為在 Windows 98 上啟動並執行 SQL Server 執行個體指定 Windows 身分識別驗證模式,因為此作業系統不支援 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 2000 登入 ID,則系統將使用 SQL Server 身分識別驗證對其進行驗證。如果沒有提供 SQL Server 2000 登入 ID 或請求 Windows 身分識別驗證,則使用 Windows 身分識別驗證對其進行身分識別驗證。

當使用者用指定的登入名稱稱和密碼從非信任連接進行串連時,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 身分識別驗證)。

儘管建議使用 Windows 身分識別驗證,但對於 Windows NT 4.0 和 Windows 2000 用戶端以外的其它用戶端串連,可能需要使用 SQL Server 身分識別驗證。

說明 當使用具名管道串連到在 Windows NT 4.0 或 Windows 2000 上啟動並執行 SQL Server 執行個體時,使用者必須有串連到 Windows NT 具名管道 IPC ///IPC$ 的許可權。如果使用者沒有串連許可權,則不能使用具名管道串連到 SQL Server 執行個體,除非電腦上的 Windows NT 4.0 或 Windows 2000 guest 帳戶已啟用(預設情況下禁用),或者給使用者帳戶授予"從網路訪問該電腦"的許可權。

設定 SQL Server 2000 身分識別驗證模式
SQL Server 2000 身分識別驗證模式可以在安裝過程中指定或使用 SQL Server 企業管理器指定.

SQL Server 2000 聯機叢書:
若要串連到 Microsoft SQL Server 2000 執行個體,只需給應用程式提供下面中的兩條資訊:

運行 SQL Server 執行個體的電腦所在的網路名稱。
執行個體名(可選,只有在串連到具名執行個體時才需要)。
登入標識符 (ID)。
登入 ID 是帳戶標識符,用來控制對任何 SQL Server 2000 系統的存取權限。SQL Server 2000 只有在首先驗證了指定的登入 ID 有效後,才完成串連。這種登入驗證稱為身分識別驗證。

在登入屬性中,有一個是預設資料庫。當一個登入串連到 SQL Server 時,這個預設資料庫就變成該串連的當前資料庫,除非該串連請求指定另一個資料庫作為當前資料庫。
登入 ID 僅能使您串連到 SQL Server 執行個體。特定資料庫內的許可權由使用者帳戶控制。資料庫管理員將您的登入帳戶映射到您有權訪問的任何資料庫中的使用者帳戶。

 

Windows 身分識別驗證
SQL Server 2000 sysadmin 固定伺服器角色成員必須首先向 SQL Server 2000 指定所有允許串連到 SQL Server 2000 的 Microsoft Windows NT 或 Microsoft Windows 2000 帳戶或組。當使用 Windows 身分識別驗證時,在串連到 SQL Server 2000 時不必指定登入 ID 或密碼。使用者對 SQL Server 2000 的存取權限由 Windows NT 或 Windows 2000 帳戶或組控制,當登入到用戶端上的 Windows 作業系統時需接受身分識別驗證。

 

當串連到 SQL Server 2000 時,SQL Server 2000 用戶端軟體向 SQL Server 2000 請求 Windows 信任連接。直到用戶端使用有效 Windows 帳戶成功登入後,Windows 才開啟信任連接。信任連接的屬性包括開啟串連的用戶端的 Windows NT 和 Windows 2000 組及使用者帳戶。SQL Server 2000 從信任連接屬性中得到使用者的帳戶資訊,並將它們與定義為有效 SQL Server 2000 登入的 Windows 帳戶相匹配。如果 SQL Server 2000 找到匹配的項,則接受這個串連。當使用 Windows 2000 身分識別驗證串連到 SQL Server 2000 時,使用者標識即是 Windows NT 或 Windows 2000 組或使用者帳戶。

Microsoft Windows Me 和 Windows 98 作業系統不支援伺服器端的信任連接 API。SQL Server 在 Windows Me 或 Windows 98 上運行時不支援 Windows 身分識別驗證。使用者在串連時必須提供 SQL Server 登入帳戶。當 SQL Server 在 Windows NT 或 Windows 2000 上運行時,Windows Me、Windows 98 和 Windows 95 用戶端可以使用 Windows 2000 身分識別驗證與其串連。

SQL Server 身分識別驗證
sysadmin 固定伺服器角色成員首先向 SQL Server 2000 指定所有有效 SQL Server 2000 登入帳戶和密碼。這些登入帳戶和密碼與使用者的 Microsoft Windows 帳戶或網路帳戶無關。當串連到 SQL Server 2000 時,使用者必須提供 SQL Server 2000 登入帳戶和密碼。系統將通過使用者的 SQL Server 2000 登入帳戶在 SQL Server 2000 中標識使用者。

由此可以看出,SQL Server 2000 安全控制是由登入>>使用者>>許可權來得到控制的。因此要串連 SQL Server 2000,首先要經過身分識別驗證,要通過身分識別驗證,就必須擁有登入 ID。

登入 ID 的擷取
SQL Server 2000 使用兩類身分識別驗證:Windows 身分識別驗證和 SQL Server 身分識別驗證(註:Microsoft Windows Me 和 Windows 98 作業系統不支援伺服器端的信任連接 API,也就是說安裝在 Microsoft Windows Me 和 Windows 98 作業系統上的 SQL Server 2000 不支援 Windows 身分識別驗證)。

為 Windows 身分識別驗證的登入 ID 的擷取
對於有域的網路,在域使用者管理員中添加域使用者,設為:UserSQL
對於無域的網路,在使用者和組中添加使用者,設為:UserSQL

向本機電腦中添加 Windows 使用者(以 Windws XP 為例)

舉例說明在 Windows XP 添加使用者,開啟 Windows 資源管理員,按右鍵 [我的電腦] 選擇 [管理] 就開啟了 [電腦管理],在 [電腦管理] 中,展開 [本機使用者和級] 按右鍵 [使用者] 選擇 [新使用者],這時開啟 [新使用者] 視窗,輸入使用者名稱為 UserSQL,描述為 SQL Server 登入 ID(可選,方便以後管理),輸入密碼,去掉“使用者下次登入時必須更改密碼”(為了講解簡單點),勾選“使用者不能更改密碼”和“密碼永不到期”,然後點擊 [建立] 按鈕,這時就為該電腦建立了一個名為 UserSQL 的使用者。

到此該使用者還不能用來串連" SQL Server 2000 資料庫,還必須在 SQL Server 2000 中建立“登入”與剛建的使用者相對應。

A. 使用 SQL Server 2000 企業管理器添加 Windows 使用者的登入 ID

下面舉例說明如何在 SQL Server 2000 的企業管理器中建立“登入”,開啟 SQL Server 2000 的企業管理器並以 sa 身份或 Windows 系統管理員的身份(因為這兩個登入擁有 SQL Server 2000 sysadmin 角色的許可權)串連到當前啟動並執行 SQL Server 2000,展開 [安全性] 節點,按右鍵 [登入] 選擇 [建立登入],這時會開啟 [SQL Server 登入發生 -- 建立登入] 視窗,在 [常規] 標籤下,點擊 [名稱] 右側的 [...] 按鈕瀏覽 Windows 使用者名稱,列出了本地服務名(MYDESK)的使用者,在列表中選擇上一步建立的 Windows 使用者 UserSQL,然後點擊 [添加] 按鈕將其添加到 [添加名稱] 中,點擊 [確定] 按鈕。
 
然後,要為" UserSQL 登入選擇預設資料庫,選擇“NorthwindCS”,點擊 [確定] 按鈕。
 
可是這時彈出一個錯誤提示框,說使用者沒有訪問" NorthwindCS 資料庫的許可權,不要緊,這個問題留待後面的建立資料庫使用者再進行講解,點擊 [是],到此為止,在 SQL Server 2000 中建立了一個登入 UserSQL,並選擇預設資料庫為 NorthWindCS。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.