本机 Windows 主体
适用于:Azure SQL 托管实例
Windows 身份验证元数据模式是一种新模式,允许用户对 Azure SQL 托管实例使用 Windows 身份验证或 Microsoft Entra 身份验证(使用 Windows 主体元数据)。 此模式仅适用于 SQL 托管实例。 Windows 身份验证元数据模式不适用于 Azure SQL 数据库。
当环境在 Active Directory (AD) 与 Microsoft Entra ID 之间同步时,AD 中的 Windows 用户帐户将同步到 Microsoft Entra ID 中的 Microsoft Entra 用户帐户。
SQL 托管实例和 SQL Server 的身份验证基于绑定到登录名的元数据。 对于 Windows 身份验证登录名,从 CREATE LOGIN FROM WINDOWS
命令创建登录名时会创建元数据。 对于 Microsoft Entra 登录名,从 CREATE LOGIN FROM EXTERNAL PROVIDER
命令创建登录名时会创建元数据。 对于 SQL 身份验证登录名,在执行 CREATE LOGIN WITH PASSWORD
命令时会创建元数据。 身份验证过程与存储在 SQL 托管实例 或 SQL Server 中的元数据紧密耦合。
注意
在 SQL 托管实例中将本机 Windows 主体与 Windows 身份验证元数据模式配合使用目前处于预览阶段。
身份验证元数据模式
以下身份验证元数据模式可用于 SQL 托管实例,不同的模式确定哪个身份验证元数据用于身份验证以及登录名的创建方式:
- Microsoft Entra(默认):此模式允许使用 Microsoft Entra 用户元数据对 Microsoft Entra 用户进行身份验证。 若要在此模式下使用 Windows 身份验证,请参阅 Azure SQL 托管实例上 Microsoft Entra 主体的 Windows 身份验证。
- 配对(SQL Server 默认模式):SQL Server 身份验证的默认模式。
- Windows(新模式):此模式允许在 SQL 托管实例中使用 Windows 用户元数据对 Microsoft Entra 用户进行身份验证。
语法 CREATE LOGIN FROM WINDOWS
和 CREATE USER FROM WINDOWS
可用于在 Windows 身份验证元数据模式下为 Windows 主体分别在 SQL 托管实例中创建登录名或用户。 Windows 主体可以是 Windows 用户或 Windows 组。
若要使用 Windows 身份验证元数据模式,用户环境必须将 Active Directory (AD) 与 Microsoft Entra ID 同步。
配置身份验证元数据模式
- 转到“Azure 门户”并导航到您的 SQL 托管实例资源。
- 转到“设置”>“Microsoft Entra ID”。
- 从下拉列表中选择首选的“身份验证元数据”模式。
- 选择“保存身份验证元数据配置”。
使用 Windows 身份验证元数据模式应对迁移质询
Windows 身份验证元数据模式有助于对应用程序进行新式身份验证,并解除对 SQL 托管实例的迁移质询。 下面是一些常见应用场景,其中 Windows 身份验证元数据模式可用于应对客户质询:
- 使用 Microsoft Entra ID 和 Kerberos 为 Azure SQL 托管实例设置 Windows 身份验证的复杂性。
- 托管实例链接中的只读副本故障转移。
- SQL Server 的 Microsoft Entra 身份验证的同步。
Microsoft Entra 主体的 Windows 身份验证
只要在 AD 与 Microsoft Entra ID 之间同步环境,Windows 身份验证元数据模式就可以用于使用 Windows 登录名或 Microsoft Entra 登录名(如果该登录名从 Windows 主体 (CREATE LOGIN FROM WINDOWS
) 创建)对用户进行 SQL 托管实例的身份验证。
此功能对于具有使用 Windows 身份验证并迁移到 SQL 托管实例的应用程序的客户尤其有用。 Windows 身份验证元数据模式允许客户继续使用其应用程序的 Windows 身份验证,而无需对应用程序代码进行任何更改。 例如,运行 CREATE LOGIN FROM WINDOWS
和 CREATE USER FROM WINDOWS
命令的 BizTalk 服务器等应用程序可以在迁移到 SQL 托管实例时继续工作,而无需进行任何更改。 其他用户可以使用同步到 AD 的 Microsoft Entra 登录名对 SQL 托管实例进行身份验证。
托管实例链接
尽管托管实例链接可在 SQL Server 和 SQL 托管实例 之间实现近乎实时是数据复制,但云中的只读副本会阻止创建 Microsoft Entra 主体。 Windows 身份验证元数据模式允许客户在发生故障转移时使用现有的 Windows 登录名对副本进行身份验证。
SQL Server 2022 及更高版本的 Microsoft Entra 身份验证
SQL Server 2022 引入了对 Microsoft Entra 身份验证的支持。 许多用户希望将身份验证模式限制为仅利用新式身份验证,并将所有的 Windows 主体迁移到 Microsoft Entra ID。 但是,在某些情况下,仍需要 Windows 身份验证,例如绑定到 Windows 主体的应用程序代码。 Windows 身份验证元数据模式允许客户继续使用 Windows 主体在 SQL Server 中进行授权,同时使用为身份验证同步的 Microsoft Entra 主体。
SQL Server 不了解 Active Directory 与 Microsoft Entra ID 之间的同步。 尽管用户和组在 AD 和 Microsoft Entra ID 之间同步,但你仍必须使用语法 CREATE LOGIN FROM EXTERNAL PROVIDER
创建登录名,并向登录名添加权限。 Windows 身份验证元数据模式可缓解将登录名手动迁移到 Microsoft Entra ID 的需求。
身份验证元数据模式比较
下面是说明身份验证元数据模式如何与 SQL 托管实例配合使用的流程图:
以前,在 AD 与 Microsoft Entra ID 之间同步用户的客户无法使用从 Windows 主体创建的登录名进行身份验证,无论他们使用的是 Windows 身份验证还是从 AD 同步的 Microsoft Entra 身份验证都是如此。 借助 Windows 身份验证元数据模式,客户现在可以使用 Windows 身份验证或同步的 Microsoft Entra 主体通过从 Windows 主体创建的登录名进行身份验证。
对于同步的用户,可以根据以下配置和登录类型判断身份验证是否成功:
身份验证元数据模式 | 从 WINDOWS | FROM EXTERNAL PROVIDER |
---|---|---|
Windows 模式 | ||
Microsoft Entra 身份验证 | 成功 | 失败 |
Windows 身份验证 | 成功 | 失败 |
Microsoft Entra ID 模式 | ||
Microsoft Entra 身份验证 | 失败 | 成功 |
Windows 身份验证 | 失败 | 成功 |
配对模式 | ||
Microsoft Entra 身份验证 | 失败 | 成功 |
Windows 身份验证 | 成功 | 失败 |
相关内容
详细了解如何在 SQL 托管实例上实现 Microsoft Entra 主体的 Windows 身份验证: