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

什么是 Azure SQL 托管实例?

适用于:Azure SQL 托管实例

本文概述了 Azure SQL 托管实例,它是一个完全托管的平台即服务 (PaaS) 数据库引擎,可在无需用户参与的情况下处理大多数数据库管理功能,如升级、修补、备份和监视等。

注意

免费试用 Azure SQL 托管实例,并在前 12 个月在常规用途 SQL 托管实例上获取 720 vCore 小时,每个实例最多 100 个数据库。

Azure SQL 托管实例是一种可缩放的云数据库服务,它始终运行在最新稳定版本的 Microsoft SQL Server 数据库引擎上,是具有 99.99% 内置高可用性的修补 OS,并提供与 SQL Server 的接近 100% 的功能兼容性。 借助内置于 Azure SQL 托管实例中的 PaaS 功能,你能够专注于对业务至关重要的特定于域的数据库管理和优化活动,同时由 Microsoft 处理备份以及修补于更新 SQL 和操作系统代码,从而减轻了管理底层基础结构的负担。

如果不熟悉 Azure SQL 托管实例,请观看我们深度讲解的 Azure SQL 视频系列中的“Azure SQL 托管实例”视频:

注意

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

概述

Azure SQL 托管实例是一项 PaaS 服务,具有与最新 Enterprise Edition SQL Server 数据库引擎接近 100% 的兼容性,可提供解决常见安全问题的本机虚拟网络 (VNet) 实现,以及受现有 SQL Server 客户青睐的业务模型。 SQL 托管实例允许现有 SQL Server 客户将其本地应用程序即时转移到云中,而只需对应用程序和数据库做出极少量的更改。 同时,SQL 托管实例提供了所有 PaaS 功能(自动修补和版本更新、自动备份高可用性),可大幅降低管理开销和总拥有成本 (TCO)。

SQL 托管实例面向想要以最少的迁移工作量,将大量应用从本地或 IaaS、自我构建的或 ISV 提供的环境迁移到完全托管的 PaaS 云环境的客户。 使用完全自动化的 Azure 数据迁移服务托管实例链接,客户可将其现有的 SQL Server 数据库或 SQL Server 实例直接迁移到 Azure SQL 托管实例,从而实现与 SQL Server 的兼容,并通过本机 VNet 支持实现客户实例的完全隔离。

借助软件保障,可以使用适用于 SQL Server 的 Azure 混合权益交换现有许可证,以获得 SQL 托管实例的折扣价格。 SQL 托管实例是 SQL Server 实例在云中的最佳迁移目标,需要很高的安全性和丰富的编程接口。

若要详细了解迁移选项和工具,请参阅迁移概述:SQL Server 到 Azure SQL 托管实例

下图概括描绘了 SQL 托管实例的主要优势:

关键功能

重要

若要查看 SQL 托管实例当前可用的区域列表,请参阅支持区域

关键特性和功能

SQL 托管实例使用最新版 SQL Server 的所有功能(包括联机操作、自动计划更正和其他企业性能增强功能)运行。 功能比较:Azure SQL 托管实例与 SQL Server 中对可用功能进行了比较。

SQL 托管实例结合了 Azure SQL 数据库和 SQL Server 数据库引擎提供的最佳功能:

PaaS 优势 业务连续性
无需购买或管理硬件
不产生管理底层基础结构的管理开销
快速预配和服务缩放
自动修补和版本升级
可以停止和启动实例以节省成本
与其他 PaaS 数据服务集成
99.99% 的运行时间 SLA
内置高可用性
SQL Server 灾难恢复到 SQL 托管实例
使用自动备份保护数据
客户可配置的备份保持期
用户启动的可还原到 SQL Server 2022备份
数据库时间点还原功能
安全性和符合性 Management
隔离的环境(VNet 集成、单租户服务、专用的计算和存储资源)
遵循与 Azure SQL 数据库相同的合规性标准
透明数据加密 (TDE)
Microsoft Entra 身份验证,单一登录支持
Microsoft Entra 服务器主体(登录名)
Microsoft Entra 主体的 Windows 身份验证
SQL 审核
高级威胁防护
用于自动预配和缩放服务的 Azure 资源管理器 API
用于手动预配和缩放服务的 Azure 门户功能
数据迁移服务

重要

Azure SQL 托管实例已通过了多项合规性标准认证。 有关详细信息,请参阅 Microsoft Azure 合规性产品,从中找出 SQL 托管实例符合性认证的最新列表(列在“SQL 数据库”下)。

下表显示 SQL 托管实例的关键详细信息:

功能 说明
Azure 门户管理
SQL Server 版本/内部版本 最新稳定的 SQL Server 数据库引擎
受管理的自动备份
自动软件修补
最新的数据库引擎功能
内置的实例和数据库监视与指标
SQL Server 代理作业
每个数据库的数据文件 (ROWS) 数目 多个
每个数据库的日志文件 (LOG) 数目 1
VNet - Azure 资源管理器部署
VNet - 经典部署模型

受支持的 SQL 功能

SQL 托管实例旨在通过分阶段的发布计划,实现外围应用与最新 SQL Server 版本的近乎 100% 的兼容性,这意味着大多数 SQL Server 功能也与 Azure SQL 托管实例兼容。

SQL 托管实例支持与 SQL Server 2008 数据库的向后兼容。 支持从 SQL Server 2005 直接迁移,迁移后的 SQL Server 2005 数据库的兼容性级别将更新为 SQL Server 2008。

下面简要列出了与 Azure SQL 托管实例兼容的 SQL Server 功能:

数据迁移

有关 SQL Server 与 Azure SQL 托管实例兼容功能比较的完整列表,请参阅 SQL 托管实例功能比较;有关 SQL 托管实例与 SQL Server 中 T-SQL 差异的列表,请参阅 SQL 托管实例与 SQL Server 的 T-SQL 差异

本地 SQL Server 与 SQL 托管实例之间的主要差异

SQL 托管实例的好处在于它在云中始终是最新的,这意味着 SQL Server 中的某些功能可能已过时、停用或被取代。 在某些情况下,当工具需要识别特定的功能是否以略微不同的方式工作或者服务是否在某个环境中运行时,你无法完全控制这一点。

一些主要区别:

  • 高可用性是通过类似 Always On 可用性组的技术内置和预配置的。
  • 仅有自动备份和时间点还原。 客户可以启动 copy-only 备份,而不会干扰自动备份链。
  • 不支持指定完整的物理路径,因此必须以不同的方式为相应的方案提供支持:RESTORE DB 不支持 WITH MOVE,CREATE DB 不允许使用物理路径,BULK INSERT 仅适用于 Azure Blob 等。
  • SQL 托管实例支持 Microsoft Entra 身份验证以及 Microsoft Entra 主体(预览版)的 Windows 身份验证
  • 对于包含内存中 OLTP 对象的数据库,SQL 托管实例会自动管理 XTP 文件组和文件。
  • SQL 托管实例支持 SQL Server Integration Services (SSIS),并且可以托管存储 SSIS 包的 SSIS 目录 (SSISDB),但它们在 Azure 数据工厂中的托管 Azure-SSIS Integration Runtime (IR) 上执行。 请参阅在数据工厂中创建 Azure-SSIS IR。 若要比较 SSIS 功能,请参阅比较 SQL 数据库与 SQL 托管实例
  • SQL 托管实例仅支持通过 TCP 协议建立连接。 它不支持通过命名管道进行连接。
  • 可以停止和启动实例以节省成本。

商业智能

Azure SQL 托管实例没有本机内置的商业智能套件,但你可以使用以下服务:

  • SQL Server Integration Service (SSIS)Azure 数据工厂 PaaS 的一部分。
  • SQL Server Analysis Service (SSAS) 是 Azure 中的一个单独的 PaaS 服务。
  • SQL Server Reporting Service (SSRS),可以改用 Power BI 分页报表或在 Azure 虚拟机上托管 SSRS。 虽然 SQL 托管实例不能将 SSRS 作为服务运行,但它可以使用 SQL Server 身份验证为安装在 Azure 虚拟机上的报表服务器托管 SSRS 目录数据库

管理功能

SQL 托管实例可以减少系统管理员花费在管理任务上的时间,因为该服务可以自行执行这些任务,或者大大简化这些任务。 例如,OS/RDBMS 安装和修补动态实例大小重设和配置备份数据库复制(包括系统数据库)、高可用性配置,以及运行状况和性能监视数据流的配置。

有关详细信息,请参阅支持和不支持的 SQL 托管实例功能列表以及 SQL 托管实例和 SQL Server 之间的 T-SQL 差异

基于 vCore 的购买模型

SQL 托管实例基于 vCore 的购买模型提供了灵活性、控制力和透明度,并且还提供了一种简单明了的方法来将本地工作负载要求转换到云。 此模型允许根据工作负荷需求来更改计算、内存和存储。 此外,借助适用于 SQL Server 的 Azure SQL Server 混合权益,还能使用 vCore 模型节省高达 55% 的费用。

在 vCore 模型中,你可以选择如下硬件配置:

  • 标准系列 (Gen5) 逻辑 CPU 基于 Intel® E5-2673 v4 (Broadwell) 2.3 GHz、Intel® SP-8160 (Skylake) 和 Intel® 8272CL (Cascade Lake) 2.5 GHz 处理器,每个 CPU vCore 具有 5.1 GB RAM,采用快速 NVMe SSD 和超线程逻辑核心,计算大小为 4 到 80 个核心。
  • “高级系列”逻辑 CPU 基于 Intel® 8370C (Ice Lake) 2.8 GHz 处理器,每个 CPU vCore 具有 7 GB RAM(最多 128 个 vCore),采用快速 NVMe SSD 和超线程逻辑核心,计算大小为 4 到 128 个核心。
  • 高级系列内存优化逻辑 CPU 基于 Intel® 8370C (Ice Lake) 2.8 GHz 处理器,每个 CPU vCore 具有 13.6 GB RAM(最多 64 个 vCore),采用快速 NVMe SSD 和超线程逻辑核心,计算大小为 4 到 64 个核心。

若要详细了解硬件配置之间的区别,请参阅 SQL 托管实例资源限制

服务层

服务层级通常定义存储体系结构、空间和 I/O 限制,以及与可用性和灾难恢复相关的业务连续性选项。

SQL 托管实例可在两个服务层级中提供:

  • 常规用途:旨在用于具有典型性能和 I/O 延迟要求的应用程序。 可以使用升级后的下一代常规用途服务层级(预览版)来改善性能指标,提高资源灵活性。
  • 业务关键:适用于具有低 I/O 延迟要求且对工作负载中的基础维护操作影响最低的应用程序。

管理操作

Azure SQL 托管实例提供管理操作,你可以使用这些操作来自动部署新的托管实例、更新实例属性,以及删除不再需要的实例。 可以在 Azure SQL 托管实例管理操作概述中找到管理操作的详细说明。

托管实例链接使用分布式可用性组技术在 SQL Server 与 Azure SQL 托管实例之间同步数据库,解锁许多方案,例如:

  • 在不迁移到云的情况下使用 Azure 服务
  • 将只读工作负载卸载到 Azure
  • 灾难恢复
  • 迁移到 Azure

无许可证 DR 权益

使用 Azure SQL 托管实例,可通过指定仅用于灾难恢复 (DR) 的次要副本来节省 vCore 许可成本。 若要了解详细信息,请查看无许可证 DR 权益

高级安全性和符合性

SQL 托管实例附带了 Azure 平台和 SQL Server 数据库引擎提供的高级安全功能。

安全隔离

使用 SQL 托管实例可以进一步实现与 Azure 平台上其他租户的安全隔离。 安全隔离包括:

  • 使用 Azure ExpressRoute 或 VPN 网关实现本机虚拟网络并连接到本地环境。
  • 在默认部署中,仅通过专用 IP 地址公开 SQL 终结点,以便从专用 Azure 或混合网络建立安全连接。
  • 具有专用底层基础结构(计算、存储)的单一租户。

下图概述了应用程序的各种连接选项:

高可用性

若要详细了解子网级别的 VNet 集成和网络策略实施情况,请参阅托管实例的 VNet 体系结构将应用程序连接到托管实例

重要

只要安全要求允许,就将多个托管实例放在同一子网中,因为这会带来额外的好处。 在同一子网中并置实例,将显著简化网络基础结构维护,还会减少预配时间,因为预配持续时间长与在子网中部署第一个托管实例的成本相关。

安全功能

Azure SQL 托管实例提供一组可用于保护数据的高级安全功能。

  • SQL 托管实例审核可跟踪数据库事件,并将其写入 Azure 存储帐户中的审核日志文件。 审核可帮助你一直保持遵从法规、了解数据库活动,以及深入了解可以指明业务考量因素或疑似安全违规的偏差和异常。
  • 动态数据加密 - SQL 托管实例提供动态数据加密,使用传输层安全性 (TLS) 保护数据。 除 TLS 以外,SQL 托管实例还使用 Always Encrypted 在动态、静态和查询处理期间提供敏感数据的保护。 Always Encrypted 可针对涉及关键数据被盗的漏洞提供数据安全性。 例如,借助 Always Encrypted,信用卡号即使在查询处理期间也始终加密存储在数据库中,允许经授权员工或需要处理该数据的应用程序在使用时进行解密。
  • 高级威胁防护是对审核的补充,它在服务中提供一个内置的附加安全智能层,用于检测企图访问或使用数据库的异常的潜在有害尝试。 出现可疑活动、潜在漏洞、 SQL 注入攻击和异常数据库访问模式时,它会发出警报。 可以从 Microsoft Defender for Cloud 查看高级威胁防护警报。 它们可提供可疑活动的详细信息,以及调查和缓解威胁的推荐操作。
  • 动态数据掩码通过对非特权用户屏蔽敏感数据来限制此类数据的泄漏。 动态数据掩码允许指定在对应用层产生最小影响的前提下可以透露的敏感数据量,从而帮助防止未经授权的用户访问敏感数据。 它是一种基于策略的安全功能,会在针对指定的数据库字段运行查询后返回的结果集中隐藏敏感数据,同时保持数据库中的数据不变。
  • 使用行级别安全性 (RLS) 可根据执行查询的用户特征(例如按组成员身份或执行上下文),控制对数据库表中的行的访问。 RLS 简化了应用程序中的安全性设计和编程。 使用 RLS 可针对数据行访问实施限制。 例如,确保工作人员只能访问与其部门相关的数据行,或者将数据访问权限限制为相关的用户。
  • 透明数据加密 (TDE) 可以加密 SQL 托管实例数据文件,称为静态数据加密。 TDE 针对数据和日志文件执行实时 I/O 加密和解密。 加密使用数据库加密密钥 (DEK),它存储在数据库引导记录中,可在恢复时使用。 可使用透明数据加密保护托管实例中的所有数据库。 TDE 是经验证的 SQL Server 静态加密技术,许多合规性标准都需要它来防止存储介质被盗。

通过 Azure 数据库迁移服务或本机还原来支持将加密数据库迁移到 SQL 托管实例。 如果打算使用本机还原迁移加密数据库,则必须将现有 TDE 证书从 SQL Server 实例迁移到 SQL 托管实例。 有关迁移选项的详细信息,请参阅将 SQL Server 实例迁移到 Azure SQL 托管实例指南

Microsoft Entra 集成

SQL 托管实例支持传统 SQL Server 数据库引擎登录名以及与 Microsoft Entra ID(以前称为 Azure Active Directory)集成的登录名。 Microsoft Entra 服务器主体(登录名)是在本地环境中使用的本地数据库登录名的 Azure 云版本。 Microsoft Entra 服务器主体(登录名)使你能够将 Microsoft Entra 租户中的用户和组指定为真正的实例范围主体,并执行任何实例级别操作,包括同一托管实例中的跨数据库查询。

SQL 托管实例允许使用 Microsoft Entra 集成集中管理数据库用户和其他 Microsoft 服务的标识。 此功能简化了权限管理,增强了安全性。 Microsoft Entra ID 支持多重身份验证,以提高数据和应用程序的安全性,同时支持单一登录过程。

引入了一种新语法,用来创建 Microsoft Entra 服务器主体(登录名):FROM EXTERNAL PROVIDER。 有关该语法的详细信息,请参阅 CREATE LOGIN,并查看为 SQL 托管实例预配 Microsoft Entra 管理员一文。

身份验证

SQL 托管实例身份验证是指用户连接到数据库时如何证明其身份。 SQL 托管实例支持三种类型的身份验证:

  • SQL 身份验证:此身份验证方法使用用户名和密码。
  • Microsoft Entra 身份验证:这种身份验证方法使用 Microsoft Entra ID 托管的标识,并支持托管域和集成域。 请尽可能使用 Active Directory 身份验证(集成安全性)。
  • Microsoft Entra 主体的 Windows 身份验证Microsoft Entra 主体的 Kerberos 身份验证支持对 Azure SQL 托管实例的 Windows 身份验证。 托管实例的 Windows 身份验证使客户能够将现有服务迁移到云,同时保持无缝的用户体验,并为基础设施现代化提供基础。

授权

授权是指用户可以在 Azure SQL 托管实例中的数据库内执行的操作,授权由用户帐户的数据库角色成员身份和对象级权限控制。 SQL 托管实例的授权功能与 SQL Server 2022 相同。

数据库迁移

SQL 托管实例面向需要从本地或 IaaS 数据库实施项目迁移大量数据库的用户方案。 SQL 托管实例支持多种数据库迁移选项,它们将在迁移指南中进行讨论。 有关详细信息,请参阅迁移概述:SQL Server 到 Azure SQL 托管实例

备份和还原

迁移方法利用 Azure Blob 存储的 SQL 备份。 可以使用 T-SQL RESTORE 命令将 Azure Blob 存储中存储的备份直接还原到托管实例。

  • 有关介绍如何还原 Wide World Importers - 标准数据库备份文件的快速入门,请参阅将备份文件还原到托管实例。 本快速入门介绍如何将备份文件上传到 Azure Blob 存储并使用共享访问签名 (SAS) 对其进行保护。
  • 有关从 URL 还原的信息,请参阅从 URL 本机还原

重要

来自托管实例的备份只能还原到其他托管实例或还原到 SQL Server 2022。 无法将它们还原到其他版本的 SQL Server 或还原到 Azure SQL 数据库。

数据库迁移服务

Azure 数据库迁移服务是一项完全托管的服务,旨在实现在最短的停机时间内从多个数据库源无缝迁移到 Azure 数据平台。 此服务简化了将现有的第三方数据库和 SQL Server 数据库移到 Azure SQL 数据库、Azure SQL 托管实例以及 Azure VM 上的 SQL Server 时需要执行的任务。 请参阅如何使用数据库迁移服务将本地数据库迁移到 SQL 托管实例

托管实例链接使用分布式可用性组以安全可靠的方式将托管在任意位置的 SQL Server 本地 Always On 可用性组扩展到 Azure SQL 托管实例,从而准实时复制数据。

链接功能有助于从 SQL Server 迁移到 SQL 托管实例,可实现:

  • 与目前可用的所有其他解决方案相比,性能最高、停机时间最短的迁移。
  • 到任何服务层级中的 SQL 托管实例的真正联机迁移。

由于链接功能可实现停机时间最短的迁移,因此,你可以在保持主要工作负载联机的同时迁移到托管实例。 尽管目前可以使用其他解决方案实现联机迁移到常规用途服务层级,但链接功能是唯一允许真正联机迁移到业务关键层的解决方案。

以编程方式标识托管实例

下表显示了可通过 Transact-SQL 访问的几个属性。使用这些属性可以检测应用程序是否正在使用 SQL 托管实例以及检索重要属性。

属性 注释
@@VERSION Microsoft SQL Azure (RTM) - 12.0.2000.8 2018-03-07 Copyright (C) 2018 Microsoft Corporation. 此值与 SQL 数据库中的值相同。 此值并不表示 SQL 引擎版本 12 (SQL Server 2014)。 SQL 托管实例始终运行最新稳定的 SQL 引擎版本,此版本与最新可用的 SQL Server RTM 版本相同或更高。
SERVERPROPERTY ('Edition') SQL Azure 此值与 SQL 数据库中的值相同。
SERVERPROPERTY('EngineEdition') 8 此值唯一标识托管实例。
@@SERVERNAMESERVERPROPERTY ('ServerName') 采用以下格式的完整实例 DNS 名称:<instanceName>.<dnsPrefix>.database.windows.net,其中,<instanceName> 是客户提供的名称,<dnsPrefix> 是自动生成的名称部分,保证 DNS 名称的全局唯一性(例如“wcus17662feb9ce98”) 示例:my-managed-instance.wcus17662feb9ce98.database.windows.net

后续步骤