你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可以使用 Azure 数据库迁移服务和 Azure SQL 迁移扩展来评估、获取适当大小的 Azure 建议,并将数据库从本地 SQL Server 迁移到 Azure SQL。 作为迁移后任务的一部分,我们将通过独立的工作流引入新的用户体验,你可以使用该工作流将登录名(预览版)和服务器角色从本地源 SQL Server 迁移到 Azure SQL 目标。
这种登录名迁移体验可自动执行手动任务,例如将登录名与其相应用户映射同步,以及复制服务器/安全权限和服务器角色。
目前,只有 Azure 虚拟机目标上的 Azure SQL 托管实例和 SQL Server 受支持。
建议在开始登录名迁移之前完成本地数据库到 Azure SQL 的数据库迁移。 这将确保数据库级用户已迁移到目标;因此,登录名迁移过程将执行用户-登录名映射同步。
本教程介绍如何使用适用于 Azure Data Studio 的 Azure SQL 迁移扩展将本地 SQL Server 中的一组不同 SQL Server 登录名迁移到 Azure SQL 托管实例。
注意
可以使用适用于 Azure Data Studio 的 Azure SQL 迁移扩展、PowerShell 或 Azure CLI 来启动登录名迁移过程。
在本教程中,你将了解如何执行以下操作:
- 在 Azure Data Studio 中打开“迁移到 Azure SQL”向导
- 启动 SQL Server 登录名迁移向导
- 从源 SQL Server 实例中选择登录名
- 选择并连接到 Azure SQL 目标
- 启动 SQL Server 登录名迁移并监视完成进度
注意
只有 Azure SQL 托管实例目标才支持 Windows 帐户迁移。
先决条件
在开始学习本教程之前:
从 Azure Data Studio 市场安装 Azure SQL 迁移扩展。
在 Azure 虚拟机上创建 Azure SQL 托管实例或 SQL Server 的目标实例。
客户端(如 Azure Data Studio、PowerShell 或 Azure CLI)在其中运行登录迁移的计算机应具备与源和目标 SQL 服务器的连接。
确保用于连接到源 SQL Server 和目标 SQL 实例的登录名是 sysadmin 服务器角色的成员。
这是可选步骤。 可使用以下教程之一将本地数据库迁移到所选 Azure SQL 目标:
迁移方案 迁移模式 从 SQL Server 到 Azure SQL 托管实例 Online / Offline 从 SQL Server 到 Azure 虚拟机上的 SQL Server Online / Offline 如果尚未完成数据库迁移,并且登录名迁移过程已启动,则仍会迁移登录名和服务器角色,但登录名/角色映射不会正确执行。
不过,可以随时执行登录名迁移过程,以便为最近迁移的数据库更新用户映射同步。
对于 Windows 帐户,请确保目标 SQL 托管实例具有 Microsoft Entra 读取访问权限。 具有“特权角色管理员”角色的用户可以通过 Azure 门户配置此选项。 有关详细信息,请参阅预配 Microsoft Entra 管理员(SQL 托管实例)。
本地 Active Directory 域服务 (AD DS) 与 Microsoft Entra ID 之间的域联合身份验证必须由管理员设置。 必须具备此配置,这样本地 Windows 用户才能够与公司 Microsoft Entra ID 同步。 然后,登录名迁移过程将能够为目标托管实例中的相应 Microsoft Entra 用户创建外部登录名。
如果尚未在 Microsoft Entra 租户中设置域联合身份验证,管理员可以参考以下链接来入门:
只有 Azure SQL 托管实例目标才支持 Windows 帐户迁移。 登录名迁移向导将显示一个提示,你在其中必须输入 Microsoft Entra 域名才能将 Windows 用户转换为其 Microsoft Entra 版本。
例如,如果 Windows 用户为
contoso\username
,Microsoft Entra 域名为contoso.com
,则转换后的 Microsoft Entra 用户名将为username@contoso.com
。 若要使此转换正确进行,应设置本地 Active Directory 和 Microsoft Entra ID 之间的域联合身份验证。对于大量登录名,建议使用自动化。 借助 PowerShell 或 Azure CLI,可以使用
CSVFilePath
开关,以便将 CSV 文件类型作为要迁移的登录名列表传递。使用 Azure Data Studio 进行批量登录名迁移可能很耗时,因为需要在登录名选择屏幕上手动选择要迁移的每个登录名。
在 Azure Data Studio 中打开登录名迁移向导
若要打开登录名迁移向导,请执行以下操作:
在 Azure Data Studio 中,转到“连接”。 选择并连接到 SQL Server 的本地实例。 还可以连接到 Azure 虚拟机上的 SQL Server。
右键单击服务器连接并选择“管理”。
在服务器菜单中的“常规”下,选择“ Azure SQL 迁移”。
在 Azure SQL 迁移仪表板中,选择“新建登录名迁移”按钮以打开登录名迁移向导。
配置登录名迁移设置
在“新建登录名迁移向导”上的“步骤 1: Azure SQL 目标”中,完成以下步骤:
在“步骤 2: 选择要迁移的登录名”中,选择要从源 SQL 服务器迁移到 Azure SQL 目标的登录名。 对于 Windows 帐户,系统会提示输入关联的 Microsoft Entra 域名。 然后,选择“迁移”以启动登录名迁移过程。
启动登录名迁移过程
监视迁移
可以通过选择登录名的“迁移状态”下的链接来监视每个登录名的过程。
在打开的对话框中,可以监视该过程的各个步骤,选择其中的任何步骤都将使用以下相关详细信息填充步骤详细信息。
迁移详细信息页显示登录名迁移过程中涉及的不同阶段:
状态 | 说明 |
---|---|
迁移登录名 | 将用户已选择的登录名迁移到目标 |
迁移服务器角色 | 所有服务器角色都将从源迁移到目标 |
用户-登录名映射 | 数据库用户与迁移后的登录名之间的同步 |
登录名-服务器角色映射 | 登录名的服务器角色成员身份和角色之间的成员身份将设置到目标中 |
建立服务器和对象(安全对象) | 目标中登录名的级别权限 |
建立服务器和对象(安全对象) | 目标中服务器角色的级别权限 |
迁移后的步骤
目标 Azure SQL 现在应已复制了你选择要迁移的登录名,以及源 SQL Server 中的所有服务器角色、关联的用户映射、角色成员身份和权限。
可以通过使用已迁移的登录名之一登录到目标 Azure SQL 进行验证,方法是输入与它在源 SQL Server 实例上具有的密码相同的密码。
如果还迁移了 Windows 帐户,请在使用该 Windows 帐户在源 SQL Server 上的同一密码登录目标托管实例时,确保选中“Microsoft Entra ID - 密码”选项。
用户名的格式应为
username@contoso.com
(登录迁移向导的步骤 2 中提供的 Microsoft Entra 域名)。
限制
下表按登录名类型描述了 Azure SQL 目标提供的登录名迁移支持的当前状态:
目标 | 登录名类型 | 支持 | 状态 |
---|---|---|---|
Azure SQL Database | SQL 登录名 | 否 | |
Azure SQL 数据库 | Windows 帐户 | 否 | |
Azure SQL 托管实例 | SQL 登录名 | 是 | 预览 |
Azure SQL 托管实例 | Windows 帐户 | 是 | 预览 |
Azure VM 上的 SQL Server | SQL 登录名 | 是 | 预览 |
Azure VM 上的 SQL Server | Windows 帐户 | 否 |
Azure 虚拟机上的 SQL Server
此 Azure SQL 目标不支持 Windows 帐户迁移
Azure Data Studio 仅支持不带覆盖选项的 SQL Server 默认端口 (1433)。 另一种方法是使用 PowerShell 或 Azure CLI 完成这种类型的迁移。
Azure Data Studio 仅支持不带覆盖选项的主 IP 地址。 另一种方法是使用 PowerShell 或 Azure CLI 完成这种类型的迁移。