適用於 Azure SQL 的 Microsoft Entra ID 中的目錄讀取者角色
適用於:Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics
Microsoft Entra ID (先前稱為 Azure Active Directory) 引入了使用群組來管理角色指派。 因此,Microsoft Entra 角色可以指派給群組。
注意
有了適用於 Azure SQL 的 Microsoft Graph 支援,您可以使用較低層級的權限取代「目錄讀取者」角色。 如需詳細資訊,請參閱適用於 Azure SQL 的 Microsoft Entra 中的使用者指派的受控識別。
為 Azure SQL 資料庫、Azure SQL 受控執行個體或 Azure Synapse Analytics 啟用受控識別時,可以將 Microsoft Entra ID 目錄讀取者角色指派給身分識別,以允許讀取 Microsoft Graph API。 SQL Database 和 Azure Synapse 的受控識別稱為伺服器身分識別。 SQL 受控執行個體的受控識別稱為受控執行個體身分識別,建立執行個體時會自動指派。 如需將伺服器身分識別指派給 SQL Database 或 Azure Synapse 的詳細資訊,請參閱啟用服務主體以建立 Microsoft Entra 使用者。
目錄讀取者角色可作為伺服器或執行個體身分識別協助:
- 為 SQL 受控執行個體建立 Microsoft Entra 登入資訊
- 在 Azure SQL 中模擬 Microsoft Entra 使用者
- 將使用 Windows 驗證的 SQL Server 使用者移轉至採用 Microsoft Entra 驗證的 SQL 受控執行個體 (使用 ALTER USER [Transact-SQL] 命令)
- 變更 SQL 受控執行個體的 Microsoft Entra 管理員
- 允許服務主體 (應用程式) 在 Azure SQL 中建立 Microsoft Entra 使用者
注意
Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。
指派目錄讀取者角色
若要將目錄讀取者角色指派給身分識別,需要具備全域系統管理員或特殊權限角色管理員權限的使用者。 經常管理或部署 SQL Database、SQL 受控執行個體 或 Azure Synapse 的使用者可能無法存取這些高特殊權限角色。 對於建立計劃外 Azure SQL 資源,或者需要大型組織中通常無法存取的高特殊權限角色成員協助的使用者來說,這通常會導致問題。
對於 SQL 受控執行個體,必須先將目錄讀取者角色指派給受控執行個體身分識別,然後才能設定受控執行個體的 Microsoft Entra 管理員。
在為邏輯伺服器設定 Microsoft Entra 管理員時,SQL Database 或 Azure Synapse 不需要將目錄讀取者角色指派給伺服器身分識別。 不過,若要代表 Microsoft Entra 應用程式在 SQL Database 或 Azure Synapse 中支援 Microsoft Entra 物件建立,則需要目錄讀取者角色。 如果未將角色指派給邏輯伺服器身分識別,在 Azure SQL 中建立 Microsoft Entra 使用者的動作將會失敗。 如需詳細資訊,請參閱使用 Azure SQL 的 Microsoft Entra 服務主體。
將目錄讀取者角色授與 Microsoft Entra 群組
您現在可以讓全域系統管理員或特殊權限角色管理員建立 Microsoft Entra 群組,並將目錄讀取者權限指派給群組。 這將允許此群組的成員存取 Microsoft Graph API。 此外,擁有此群組的 Microsoft Entra 使用者可以為此群組指派新成員,包括邏輯伺服器的身分識別。
此解決方案仍然要求,只有高特殊權限角色使用者 (全域系統管理員或特殊權限角色管理員) 才能建立群組,並將使用者指派為一次性活動,但 Microsoft Entra 群組擁有者未來將能夠指派其他成員。 這樣就不需要在未來讓高特殊權限使用者在其 Microsoft Entra 租用戶中設定所有 SQL Database、SQL 受控執行個體或 Azure Synapse 伺服器。