Sql-Server

SQL Server - Windows 組身份驗證

  • October 13, 2016

我試圖了解如何以正確的方式創建對 SQL Server (2012) 數據庫的基於 Windows 組的訪問。我能夠成功地將 Windows 組添加到伺服器登錄,並且我有一個已定義的角色,我希望將組映射到該角色。我的問題是,SQL Server 是否需要創建一個使用者並將其映射到 Windows 組以允許具有 Windows 身份驗證的使用者訪問數據庫?如果是這樣,它應該是每個使用者,還是我可以只為 Windows 組登錄提供一個使用者名。

只是為了展示我如何進行目前設置:

Windows Group Name  -> domain\AdminGroup   
Database Name       -> XYZ    
DB Login Name       -> domain\AdminGroup   
DB Role             -> xyzAdmin   
User Name           -> xyzAdminUser (mapped to Role: xyzAdmin and Login: domain\AdminGroup)

目前我已經創建了一個通用使用者(不是組中每個使用者的個人使用者)並將其映射到 Windows 組登錄。但我不確定為什麼需要該步驟,因為它是 Windows 身份驗證。從登錄到 SQL 服務需要的使用者名的顯式映射是不是更多的要求?如果有任何選項可以將 Windows 組登錄映射到數據庫角色,則不確定 SQL Server 是否可以在幕後隱式處理。我問的原因是,如果需要為整個 Windows 組或單個使用者顯式創建使用者名,我不確定我作為使用者是否需要使用它,因為它是基於 Windows 的身份驗證與其他使用我的使用者名和密碼進行身份驗證的登錄不同。

我將嘗試收集資訊並嘗試回答我遇到的具體問題。

我的理解是,您可以通過使用者映射選項或腳本將登錄(伺服器級主體)映射到數據庫角色(數據庫級主體)。當您嘗試將登錄名映射到數據庫時,SQL Server 所做的是,它會向您顯示可從該數據庫中選擇的成員資格(角色)列表。如果您選擇一個,則相應的角色將映射到 SQL Server 為您隱式創建的新使用者。預設情況下,登錄屬性的使用者映射部分的使用者列將填充登錄名(Windows 使用者或 Windows 組名),如果需要,可以對其進行修改。一旦確認,SQL Server 會自動在數據庫上創建新的使用者對象。

簡而言之,對於基於 Windows 的 SQL Server 登錄,不需要顯式創建使用者對象,因為在為登錄映射數據庫時,SQL Server 在選擇所需成員身份的過程中會自動處理這一點。

雖然幾年前,這些文章將為安全基礎知識提供一個很好的見解。

您在創建 Windows 域安全組時是正確的。根據需要將 Windows 域帳戶添加到該安全組。您為 Windows 域組創建 SQL 登錄名是正確的。SQL 將允許該 Windows 域組的任何成員進行身份驗證。就 SQL 登錄創建而言,不需要進一步的操作。根據需要在 SQL Server 中設置權限。

你測試過你的配置嗎?你遇到什麼問題?

通過使用 Windows 身份驗證,可以在域級別創建 Windows 組,並且可以在 SQL Server 上為整個組創建登錄名。從域級別管理​​訪問可以簡化帳戶管理。

線上圖書

引用自:https://dba.stackexchange.com/questions/152111