你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建 Microsoft Entra 来宾用户并设置为 Microsoft Entra 管理员

适用于:Azure SQL 数据库Azure SQL 托管实例

具有 Microsoft Entra B2B 协作的来宾用户是拥有属于外部 Microsoft Entra 组织或外部标识提供者(例如 Outlook、Windows Live Mail 或 Gmail)账户的用户,它们不在 Microsoft Entra 租户管理范围内。 邀请这些用户在租户中协作时,会创建来宾用户帐户,同时仍对其标识提供者执行身份验证。

本文演示如何创建 Microsoft Entra 来宾用户,并将该用户设置为 Azure SQL 数据库和 Azure Synapse Analytics 使用的 Azure SQL 托管实例或 Azure 中逻辑服务器的 Microsoft Entra 管理员。

注意

Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。

功能描述

Azure SQL 数据库、SQL 托管实例和 Azure Synapse Analytics 支持直接从来宾用户帐户或作为租户中 Microsoft Entra 组的成员创建主体。 还可以将来宾用户设置为逻辑服务器或托管实例的 Microsoft Entra 管理员。

先决条件

  • 使用 PowerShell 将来宾用户设置为逻辑服务器或托管实例的 Microsoft Entra 管理员时,需要 Az.Sql 2.9.0 模块或更高版本。

为 Microsoft Entra 来宾用户创建数据库用户

按照以下步骤使用 Microsoft Entra 来宾用户创建数据库用户。 在本部分中,请将 <guest_user> 替换为有效的电子邮件地址,例如 guest_user@example.com

在 SQL 数据库和 Azure Synapse 中创建来宾用户

  1. 确保已将来宾用户添加到 Microsoft Entra ID,并已为数据库服务器设置 Microsoft Entra 管理员。 Microsoft Entra 身份验证需要 Microsoft Entra 管理员。

  2. 以 Microsoft Entra 管理员身份或具有足够 SQL 权限的 Microsoft Entra 用户身份连接到 SQL 数据库以创建用户,并在需要添加来宾用户的数据库上运行以下命令:

    CREATE USER [<guest_user>] FROM EXTERNAL PROVIDER;
    
  3. 现在应为来宾用户 创建了数据库用户。

  4. 运行以下命令,验证是否已成功创建数据库用户:

    SELECT * FROM sys.database_principals;
    
  5. 断开连接,并以来宾用户的身份使用 SQL Server Management Studio (SSMS) 通过 通用且具有 MFA 的 Azure Active Directory 登录到数据库。 有关详细信息,请参阅使用 Microsoft Entra 多重身份验证

在 SQL 托管实例中创建来宾用户

注意

SQL 托管实例支持 Microsoft Entra 用户以及 Microsoft Entra ID 包含的数据库用户的登录名。 以下步骤说明如何在 SQL 托管实例中为 Microsoft Entra 来宾用户创建登录名和用户。 还可以通过使用在 SQL 数据库和 Azure Synapse 中创建来宾用户部分介绍的方法,选择在 SQL 托管实例中创建包含的数据库用户

  1. 确保已将来宾用户添加到 Microsoft Entra 租户,并已为 SQL 托管实例设置 Microsoft Entra 管理员。 Microsoft Entra 身份验证需要 Microsoft Entra 管理员。

  2. 以 Microsoft Entra 管理员身份或具有足够 SQL 权限的 Microsoft Entra 用户身份连接到 SQL 托管实例以创建用户,并在 master 数据库上运行以下命令来创建来宾用户的登录名:

    CREATE LOGIN [<guest_user>] FROM EXTERNAL PROVIDER;
    
  3. master 数据库中应有一个为来宾用户创建的登录名。

  4. 运行以下命令,验证是否已成功创建登录名:

    SELECT * FROM sys.server_principals;
    
  5. 在需要添加来宾用户的数据库上运行以下命令:

    CREATE USER [<guest_user>] FROM LOGIN [<guest_user>];
    
  6. 现在应为来宾用户 创建了数据库用户。

  7. 断开连接,并以来宾用户的身份使用 SQL Server Management Studio (SSMS) 通过 通用且具有 MFA 的 Azure Active Directory 登录到数据库。 有关详细信息,请参阅使用 Microsoft Entra 多重身份验证

将来宾用户设置为 Microsoft Entra 管理员

使用 Azure 门户、Azure PowerShell 或 Azure CLI 设置 Microsoft Entra 管理员。 在本部分中,请将 <guest_user> 替换为有效的电子邮件地址,例如 guest_user@example.com

注意

如果希望来宾用户能够创建其他 Microsoft Entra 登录名或用户,他们必须有权读取 Microsoft Entra 目录中的其他标识。 此权限在目录级别配置。 有关详细信息,请参阅 Microsoft Entra ID 中的来宾用户访问权限

Azure 门户

要使用 Azure 门户为逻辑服务器或托管实例设置 Microsoft Entra 管理员,请执行以下步骤:

  1. 打开 Azure 门户
  2. 导航到“设置”下的 SQL Server 或托管实例资源“Microsoft Entra”页面。
  3. 选择“设置管理员”以打开“Microsoft Entra ID”窗格。
  4. 在“Microsoft Entra ID”窗格中,键入来宾用户帐户名称。
  5. 选择此新用户,然后保存操作。

有关详细信息,请参阅设置 Microsoft Entra 管理员

Azure PowerShell(SQL 数据库和 Azure Synapse)

要为逻辑服务器设置 Microsoft Entra 来宾用户,请执行以下步骤:

  1. 确保已将来宾用户添加到 Microsoft Entra 租户。

  2. 运行以下 PowerShell 命令,将来宾用户添加为逻辑服务器的 Microsoft Entra 管理员:

    • <ResourceGroupName> 替换为包含逻辑服务器的 Azure 资源组名称。
    • <ServerName> 替换为你的逻辑服务器名称。 如果服务器名称为 myserver.database.windows.net,请将 <Server Name> 替换为 myserver
    • 请将 <DisplayNameOfGuestUser> 替换为来宾用户名。
    Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DisplayName <DisplayNameOfGuestUser>
    

还可以使用 Azure CLI 命令 az sql server ad-admin 将来宾用户设置为逻辑服务器的 Microsoft Entra 管理员。

Azure PowerShell(SQL 托管实例)

要为托管实例设置 Microsoft Entra 来宾用户,请执行以下步骤:

  1. 确保已将来宾用户添加到 Microsoft Entra 租户。

  2. 转到 Azure 门户,然后转到 Microsoft Entra ID 资源。 在“管理”下转到“用户”窗格 。 选择来宾用户,并记录 Object ID

  3. 运行以下 PowerShell 命令,将来宾用户添加为 SQL 托管实例的 Microsoft Entra 管理员:

    • <ResourceGroupName> 替换为包含 SQL 托管实例的 Azure 资源组名称。
    • <ManagedInstanceName> 替换为 SQL 托管实例名称。
    • 请将 <DisplayNameOfGuestUser> 替换为来宾用户名。
    • <AADObjectIDOfGuestUser> 替换为之前收集的 Object ID
    Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName <ResourceGroupName> -InstanceName "<ManagedInstanceName>" -DisplayName <DisplayNameOfGuestUser> -ObjectId <AADObjectIDOfGuestUser>
    

还可以使用 Azure CLI 命令 az sql mi ad-admin 将来宾用户设置为托管实例的 Microsoft Entra 管理员。