教學課程:將目錄讀取者角色指派給 Microsoft Entra 群組和管理角色指派
適用於:Azure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics
本文會引導您在 Microsoft Entra ID 中建立群組(先前稱為 Azure Active Directory),並指派該群組目錄 讀取者 角色。 目錄讀取者許可權可讓群組擁有者將其他成員新增至群組,例如 Azure SQL 資料庫、Azure SQL 受控執行個體 和 Azure Synapse Analytics 的受控識別。 這會略過全域 管理員 istrator 或 Privileged Role 管理員 istrator 的需求,直接為租使用者中的每個邏輯伺服器身分識別指派目錄讀取者角色。
注意
Microsoft Entra 標識符 先前稱為 Azure Active Directory (Azure AD)。
本教學課程使用使用 Microsoft Entra 群組來管理角色指派中引進的功能。
如需將目錄讀取者角色指派給適用於 Azure SQL 的 Microsoft Entra 群組的優點詳細資訊,請參閱 適用於 Azure SQL 的 Microsoft Entra ID 中的目錄讀取者角色。
注意
有了適用於 Azure SQL 的 Microsoft Graph 支援,您可以使用較低層級的權限取代「目錄讀取者」角色。 如需詳細資訊,請參閱 適用於 Azure SQL 的 Microsoft Entra ID 中的使用者指派受控識別。
必要條件
- Microsoft Entra 租用戶。 如需詳細資訊,請參閱使用 Azure SQL 設定和管理 Microsoft Entra 驗證。
- SQL 資料庫、SQL 受管理執行個體 或 Azure Synapse。
使用 Azure 入口網站 的目錄讀取者角色指派
建立新的群組,並指派擁有者和角色
此初始設定需要具有全域 管理員 istrator 或 Privileged Role 管理員 istrator 許可權的使用者。
讓具特殊許可權的使用者登入 Azure 入口網站。
移至 Microsoft Entra ID 資源。 在 [受控] 底下,移至 [群組]。 選取 [ 新增群組 ] 以建立新的群組。
選取 [安全性 ] 作為群組類型,然後填入其餘欄位。 請確定可以將 Microsoft Entra 角色的設定 指派給群組 ,切換為 [是]。 然後將 Microsoft Entra ID Directory 讀取者 角色指派給群組。
將 Microsoft Entra 使用者指派為擁有者(s) 指派給已建立的群組。 群組擁有者可以是一般 AD 使用者,而不需要指派任何 Microsoft Entra 系統管理角色。 擁有者應該是管理 SQL 資料庫、SQL 受管理執行個體 或 Azure Synapse 的使用者。
選取 [建立]
檢查已建立的群組
注意
請確定 [群組類型 ] 為 [安全性]。 Azure SQL 不支援 Microsoft 365 群組。
若要檢查和管理已建立的群組,請返回 Azure 入口網站 中的 [群組] 窗格,然後搜尋您的組名。 選取群組之後,可以在 [管理] 設定的 [擁有者和成員] 功能表下新增其他擁有者和成員。 您也可以檢閱群組的 指派角色 。
將 Azure SQL 受控識別新增至群組
注意
我們在此範例中使用 SQL 受管理執行個體,但類似的步驟可以套用至 SQL 資料庫 或 Azure Synapse,以達到相同的結果。
針對後續步驟,不再需要全域 管理員 istrator 或 Privileged Role 管理員 istrator 使用者。
以管理 SQL 受管理執行個體 的使用者身分登入 Azure 入口網站,而且是稍早建立群組的擁有者。
在 Azure 入口網站 中尋找 SQL 受控實例資源的名稱。
在布建 SQL 受管理執行個體 期間,會為您的實例建立 Microsoft Entra 身分識別,並將其註冊為 Microsoft Entra 應用程式。 身分識別的名稱與 SQL 受管理執行個體 名稱的前置詞相同。 您可以遵循下列步驟,找到 SQL 受管理執行個體 的身分識別(也稱為服務主體):
- 移至 Microsoft Entra ID 資源。 在 [ 管理] 設定下,選取 [企業應用程式]。 對象 識別碼 是 實例的身分識別。
移至 Microsoft Entra ID 資源。 在 [受控] 底下,移至 [群組]。 選取您建立的群組。 在群組的 [ 受控 ] 設定下,選取 [ 成員]。 選取 [新增成員],然後搜尋上面找到的名稱,將您的 SQL 受管理執行個體 服務主體新增為群組的成員。
注意
可能需要幾分鐘的時間,才能透過 Azure 系統傳播服務主體許可權,並允許存取 Microsoft Graph API。 您可能必須等候幾分鐘,才能布建 microsoft Entra 系統管理員以進行 SQL 受管理執行個體。
備註
針對 SQL 資料庫 和 Azure Synapse,可以在邏輯伺服器建立期間或建立伺服器之後建立伺服器身分識別。 如需如何在 SQL 資料庫 或 Azure Synapse 中建立或設定伺服器識別的詳細資訊,請參閱啟用服務主體來建立 Microsoft Entra 使用者。
針對 SQL 受管理執行個體,必須先將目錄讀取者角色指派給受控實例身分識別,才能為受控實例設定 Microsoft Entra 系統管理員。
在為邏輯伺服器設定 Microsoft Entra 系統管理員時,SQL 資料庫 或 Azure Synapse 不需要將目錄讀取者角色指派給伺服器身分識別。 不過,若要代表 Microsoft Entra 應用程式在 SQL 資料庫 或 Azure Synapse 中啟用 Microsoft Entra 物件建立,則需要目錄讀取者角色。 如果未將角色指派給邏輯伺服器身分識別,在 Azure SQL 中建立 Microsoft Entra 使用者將會失敗。 如需詳細資訊,請參閱 使用 Azure SQL 的 Microsoft Entra 服務主體。
使用 PowerShell 指派目錄讀取者角色
重要
全域 管理員 istrator 或 Privileged Role 管理員 istrator 必須執行這些初始步驟。 除了 PowerShell 之外,Microsoft Entra ID 還提供 Microsoft Graph API,以 在 Microsoft Entra ID 中建立可指派的角色群組。
使用下列命令下載 Microsoft Graph PowerShell 模組。 您可能需要以系統管理員身分執行 PowerShell。
Install-Module Microsoft.Graph.Authentication Import-Module Microsoft.Graph.Authentication # To verify that the module is ready to use, run the following command: Get-Module Microsoft.Graph.Authentication
連線 至您的 Microsoft Entra 租使用者。
Connect-MgGraph
建立安全組以指派 目錄讀取者 角色。
DirectoryReaderGroup
、Directory Reader Group
、 和DirRead
可以根據您的喜好設定進行變更。
$group = New-MgGroup -DisplayName "DirectoryReaderGroup" -Description "Directory Reader Group" -SecurityEnabled:$true -IsAssignableToRole:$true -MailEnabled:$false -MailNickname "DirRead" $group
將目錄讀取者角色指派給群組。
# Displays the Directory Readers role information $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Directory Readers'" $roleDefinition
# Assigns the Directory Readers role to the group $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId '/' -RoleDefinitionId $roleDefinition.Id -PrincipalId $group.Id $roleAssignment
將擁有者指派給群組。
- 將取代
<username>
為您想要擁有此群組的使用者。 您可以重複這些步驟來新增數個擁有者。
$newGroupOwner = Get-MgUser -UserId "<username>" $newGroupOwner
$GrOwner = New-MgGroupOwnerByRef -GroupId $group.Id -DirectoryObjectId $newGroupOwner.Id
檢查群組的擁有者:
Get-MgGroupOwner -GroupId $group.Id
- 將取代
將服務主體指派為群組的成員
針對後續步驟,不再需要全域 管理員 istrator 或 Privileged Role 管理員 istrator 使用者。
使用同時管理 Azure SQL 資源的群組擁有者,執行下列命令以連線到您的 Microsoft Entra ID。
Connect-MgGraph
將服務主體指派為所建立群組的成員。
# Returns the service principal of your Azure SQL resource $managedIdentity = Get-MgServicePrincipal -Filter "displayName eq '<ServerName>'" $managedIdentity
# Adds the service principal to the group New-MgGroupMember -GroupId $group.Id -DirectoryObjectId $managedIdentity.Id
下列命令會傳回服務主體對象標識碼,指出它已新增至群組:
Get-MgGroupMember -GroupId $group.Id -Filter "Id eq '$($managedIdentity.Id)'"
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應