跳至主要内容

Azure SQL 数据库:分步设置与管理

了解如何创建、连接、管理、查询并保护您的 Azure SQL 数据库。本分步指南涵盖实现最佳数据库设置所需的全部要点。
· 12分钟 阅读

使用 AI 探索

SQL 数据库在现代数据应用中扮演着重要角色,它为数据的存储、管理与检索提供了结构化方式。这些数据库使用 SQL 来执行从简单查询到复杂数据事务的各种任务。

Azure SQL 数据库具备高可用性与可伸缩性,确保数据项目的可靠性能。作为全托管服务,它通过处理更新与备份等维护工作来降低管理开销。与其他 Azure 服务的集成也使您的数据解决方案开发与部署更加简化。

Azure 提供了一套面向不同数据库需求的 SQL 服务。在本教程中,我们将概览这些服务,但重点聚焦 Azure SQL Database,并深入其配置、使用与管理。

了解 Azure SQL 服务

Microsoft Azure 提供三项主要 SQL 数据库服务,分别针对不同用例与需求:Azure SQL Database、Azure SQL Managed Instance,以及 Azure 虚拟机(VM)上的 SQL Server。

Azure SQL Database 是一种完全托管的 PaaS(平台即服务)产品。它对底层基础设施进行了抽象,使开发人员能专注于构建与部署应用,而无需操心数据库维护任务。

Azure SQL Managed Instance 是一种托管服务,几乎与本地 SQL Server 实现 100% 兼容,有助于将现有 SQL Server 应用更轻松地迁移到云端。它结合了 PaaS 的优势与对数据库环境的更大掌控力。

Azure VM 上的 SQL Server 是一种 IaaS(基础设施即服务)产品,允许用户在 Azure VM 上运行完整的 SQL Server 安装。该选项为 SQL Server 实例与底层操作系统提供完全控制,类似于本地部署。

为您的需求选择合适的服务

选择合适的 Azure SQL 服务取决于您的具体需求与限制。以下几点可帮助您做出明智决策:

考量因素

Azure SQL Database

Azure SQL Managed Instance

Azure VM 上的 SQL Server

应用兼容性

最适合现代云原生应用。

几乎完全兼容本地 SQL Server 功能的理想之选。

提供完全控制,适用于需自定义配置的遗留应用。

管理开销

极低,维护自动化。

极低,维护自动化。

较高,需要更多人工管理。

可伸缩性需求

对波动工作负载无缝扩缩。

对波动工作负载无缝扩缩。

可扩展,但可能需要更多手动干预。

安全与合规

内置安全与认证体系完备。

内置安全与认证体系完备。

安全性强,但合规取决于自定义配置。

性能需求

适用于大多数具备云性能的应用。

在兼容 SQL Server 的同时提供良好性能。

适合高性能且需完全自定义的场景。

总而言之,Azure SQL Database 适合管理开销极低的云原生应用;Azure SQL Managed Instance 适合需要 SQL Server 兼容性的遗留应用;而 Azure VM 上的 SQL Server 则为自定义与高性能工作负载提供最大控制力。

现在,我们把重点放在 Azure SQL Database 服务上。

创建 Azure SQL 数据库

创建 Azure SQL 数据库包含多个步骤,均可在 Azure 门户中完成。以下是帮助您完成 SQL 数据库设置的详细指南。

1. 在 Azure 门户主页左上角点击“创建资源”按钮。在新资源页面的搜索框中输入“SQL Database”,并从服务列表中选择它。

2. 按如下方式配置数据库设置:

  • 订阅: 选择要为该数据库计费的适当订阅。
  • 资源组: 选择现有资源组,或点击“创建新建”并输入名称来创建一个新的。
  • 数据库名称: 为新的 SQL 数据库输入一个唯一名称。

Azure 中的“创建 SQL 数据库”界面,右侧显示成本摘要

Azure 中的“创建 SQL 数据库”界面,右侧为成本摘要。图片由作者提供

3. 如果您已有 SQL Server,点击“使用现有”,并从列表中选择该服务器。若没有现有 SQL Server,点击“创建新的”进行设置。您需要配置以下设置。

在 Azure 中“创建 SQL 数据库服务器”的界面

在 Azure 中创建新的 SQL 数据库服务器。图片由作者提供

  • 服务器名称: 输入服务器的唯一名称。
  • 服务器管理员登录名: 为服务器管理员创建登录名。
  • 密码: 创建一个强密码并确认。
  • 位置: 选择最接近您用户的区域以获得最佳性能。

4. 接下来,设置身份验证方法与服务器管理员登录:

  • 身份验证方法: 选择您偏好的身份验证方法。常见的是 SQL 身份验证,您也可以使用 Microsoft Entra ID(原 Azure Active Directory)身份验证以增强安全性。
  • 服务器管理员登录: 如果创建新服务器,请确保已按前述输入管理员登录名与密码。

5. 还需考虑以下附加设置:

  • 网络: 决定数据库是否可通过公共互联网访问,或仅限于私有网络。配置必要的防火墙规则与虚拟网络。
  • 安全: 启用高级数据安全等功能,其中包括威胁检测与漏洞评估。
  • 定价层: 根据性能与预算需求选择层级。选项包括常规用途、业务关键与超大规模(Hyperscale)等。各层在性能、存储与功能方面各不相同。

6. 最后, 请审核所有配置,确保一切符合预期。点击“查看 + 创建”。通过验证后,点击“创建”以部署您的 SQL 数据库。

若您希望进一步深入了解 Azure,请参阅 Azure 架构与服务课程。

连接到 Azure SQL 数据库

连接 Azure SQL 数据库可使用多种工具与方法。本节将介绍主要连接工具,并说明连接字符串与身份验证方法的使用。

连接 Azure SQL 数据库的工具

通过 Azure 门户连接

按以下步骤连接到您的 SQL 数据库并在 Azure 中直接运行查询:

1. 打开 Azure 门户,进入您的 SQL 数据库资源。在左侧菜单点击“查询编辑器(预览)”。

2. 输入服务器管理员登录名与密码以使用 SQL 身份验证;或在已配置的情况下,使用 Microsoft Entra ID(原 Azure Active Directory)身份验证。

3. 您可以在 Azure 门户的查询编辑器中直接对数据库运行 SQL 查询。

Azure 门户查询编辑器

Azure 门户查询编辑器。图片由作者提供

通过 SQL Server Management Studio(SSMS)连接

SQL Server Management Studio(SSMS)是一体化环境,用于管理 SQL Server 基础设施,支持配置、监控与管理 SQL Server 数据库实例。

  • 安装: 从微软官方网站下载并安装 SSMS。
  • 连接:打开 SSMS,点击“连接”,选择“数据库引擎”。输入服务器名称(例如 “your_server_name.database.windows.net”)、身份验证方法与凭据。

通过 Azure Data Studio 连接

Azure Data Studio 是一款跨平台数据管理工具,可用于管理本地或多云环境中的 SQL Server 数据库。

  • 安装: 从微软官方网站下载并安装 Azure Data Studio。
  • 连接:打开 Azure Data Studio,点击“新建连接”,并输入服务器详细信息,包括服务器名称、数据库名称与身份验证信息。

连接 Azure SQL 数据库的其他工具

  • Visual Studio Code:为 Visual Studio Code 安装 SQL Server 扩展,以连接 Azure SQL 数据库。
  • Power BI:可直接从 Power BI Desktop 连接 Azure SQL 数据库,以进行高级数据分析与可视化。

连接字符串与身份验证

了解连接字符串

连接字符串对于应用连接 Azure SQL 数据库至关重要。它包含服务器名称、数据库名称、身份验证凭据及其他参数。

使用 SQL 身份验证的示例连接字符串:

Server=tcp:your_server_name.database.windows.net,1433;Initial Catalog=your_database_name;Persist Security Info=False;User ID=your_username;Password=your_password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

设置 SQL 身份验证

在 SSMS 或 Azure Data Studio 中连接到 Azure SQL 数据库,运行 SQL 脚本以创建新用户并分配角色。在连接字符串中包含用户名与密码以完成身份验证。

CREATE LOGIN mylogin WITH PASSWORD = 'StrongPassword!';
CREATE USER myuser FOR LOGIN mylogin;
ALTER ROLE db_datareader ADD MEMBER myuser;

设置 Microsoft Entra ID(原 Azure Active Directory)身份验证

按以下步骤配置 Entra ID 管理员并分配用户/角色:

1. 在 Azure 门户中,导航到您的 SQL 服务器资源,选择“Active Directory 管理员”,将某个 Entra ID 用户或组设置为管理员。

2. 使用 SQL 脚本创建用户并为其分配角色。需要在启用 Entra ID 身份验证的 SSMS 或 Azure Data Studio 中执行。例如:

CREATE USER [aad_user@domain.com] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [aad_user@domain.com];
	

3. 修改连接字符串以包含 Entra ID 凭据。这通常涉及设置基于令牌的身份验证:

Server=tcp:your_server_name.database.windows.net,1433;Initial Catalog=your_database_name;Persist Security Info=False;User ID=aad_user@domain.com;Authentication="Active Directory Password";Password=your_password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
	

管理与使用您的 Azure SQL 数据库

管理与使用 Azure SQL 数据库既包括基本的数据库操作,也包括利用高级功能以优化性能、可伸缩性与可用性。以下提供了基础与高级数据库管理的详细步骤与方法。

基础数据库操作

通过 SSMS、Azure Data Studio 或 Azure 门户查询编辑器连接到数据库,并运行以下 SQL 命令创建表:

CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50),
    Email NVARCHAR(100),
    HireDate DATE
);

使用以下 SQL 代码向新创建的表插入数据:

INSERT INTO Employees (EmployeeID, FirstName, LastName, Email, HireDate)
VALUES (1, 'John', 'Doe', '[email protected]', '2022-01-01');

您可以使用简单的 SELECT 查询从表中检索数据。例如,要获取 Employees 表的全部数据:

SELECT * FROM Employees;

使用 T-SQL 进行数据库管理

T-SQL(Transact-SQL)是微软对 SQL 的扩展,用于管理与操作关系型数据库。它可执行多种任务,包括创建与修改表、管理数据,以及通过存储过程与触发器实现复杂逻辑。

CREATE PROCEDURE GetEmployeeByID
	@EmployeeID INT
AS
BEGIN
    SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END;

在此示例中,存储过程接收一个员工 ID 作为输入参数,并从“Employees”表中返回具有该特定 ID 的员工的所有列。

以下是执行刚创建的存储过程的方法:

EXEC GetEmployeeByID @EmployeeID = 1;

高级数据库管理功能

下面我们来看一些可在生产环境中使用的更高级功能。

使用弹性池扩展数据库

Azure SQL 数据库的弹性池可帮助您管理与扩展负载波动且不可预测的多个数据库。通过在池内共享资源,它能够提高成本效率。按以下步骤创建弹性池:

1. 进入 Azure 门户,选择您的 SQL 数据库服务器,在“弹性池”下点击“创建新的”。

2. 通过设置 DTU(数据库事务单元)数量并添加数据库来配置该池。

实施高可用与灾难恢复方案

Azure SQL Database 提供多种高可用与灾难恢复选项,确保数据库持续运行并保护数据:

  • 内置高可用性: 提供 99.99% 正常运行 SLA 的内置高可用性。通过将数据在不同物理位置的多个节点间复制实现。
  • 异地复制: 您可以启用异地复制,在不同 Azure 区域创建可读的辅助副本。在区域性中断时可故障转移至辅助区域。为此,请在 Azure 门户进入您的 SQL 数据库,选择“异地复制”,并配置辅助副本。
  • 自动备份: Azure SQL Database 会自动执行完整、差异与事务日志备份。您可配置备份保留策略以满足恢复点目标。
  • 时间点还原: 在发生意外数据丢失或损坏时,您可在保留期内将数据库还原到任意时间点。可通过 Azure 门户进入数据库并选择“还原”来完成。

保护您的 Azure SQL 数据库

处理数据时,安全至关重要。本节将介绍 Azure SQL Database 服务的主要安全功能。

安全最佳实践

为保护 Azure SQL 数据库免遭未授权访问,并确保在 Azure 环境中的安全、私密连接,您可以实施以下最佳实践:

  • 配置 IP 防火墙规则,限制特定 IP 地址或范围对数据库的访问。通过仅允许已知且可信的来源连接,降低未授权访问风险。
  • 使用虚拟网络服务终结点,将数据库访问限制到特定虚拟网络。通过将访问限制在指定 VNet 内,减少对公共互联网的暴露,从而增强安全性。
  • 将 VNet 与 SQL 数据库集成,使用服务终结点或专用终结点以实现安全连接。这可降低被拦截或攻击的风险,并减少对公共互联网的暴露。

使用高级数据安全功能

为保护 Azure SQL 数据库中的数据,请考虑以下高级配置:

  • 高级威胁防护用于检测异常活动。
  • 透明数据加密(TDE)用于静态数据加密。
  • 动态数据屏蔽用于在查询结果中隐藏敏感数据。

定期审计与监控您的数据库

为进一步提升 SQL 数据库的安全与数据保护,您可以设置审计流程,跟踪数据库活动,并将日志存储到 Azure 存储帐户、Log Analytics 工作区或 Event Hub。

您还可以使用 Azure Monitor 跟踪性能与安全指标,并针对特定条件设置警报。

若想进一步了解 Azure 中的数据治理,请查看 DataCamp 的 Azure 管理与治理 课程。

SQL 数据库的定价与成本管理

由于影响价格的配置选项众多,Azure SQL Database 的定价可能较为复杂。本节将讨论影响成本的主要因素。

各层级(Basic、Standard、Premium)提供不同的性能与功能。服务层级的选择会影响成本,Basic 最便宜,Premium 最昂贵。

您可以在基于 DTU 的定价或基于 vCore 的定价之间选择:

  • DTU(数据库事务单元):在 DTU 定价模式下,DTU 数量决定分配给数据库的计算、内存与 I/O 资源。DTU 越多,成本越高。
  • vCore(虚拟核心):在 vCore 定价模式下,vCore 数量与硬件类型(常规用途、业务关键或超大规模)决定计算成本。更多 vCore 或更高端硬件配置将带来更高成本。

数据库中存储的数据量会影响成本。存储按预配容量计费,而非实际已用空间。

用于自动备份的存储(在特定保留期内)包含在内。若需更长保留期的额外备份存储,将产生额外费用。

根据您的部署选项,成本会有所不同:

  • 单一数据库:独立数据库,拥有专属资源。成本取决于所选服务层级、计算与存储。
  • 弹性池:共享资源的一组数据库。成本取决于池内 eDTU 或 vCore 总量与分配的存储。
  • 托管实例:完全托管的 SQL Server 实例。成本取决于 vCore 数量、存储及其他功能。

诸如可用区冗余配置,或在高级层中提供更高可用性保证的功能,会增加成本。

从 Azure SQL 数据库传出的数据(如至外部客户端或其他 Azure 区域)会产生出口费用。同一区域内的内部数据传输通常免费。

成本管理与优化建议

以下建议可帮助您优化 Azure SQL 数据库成本:

  • 使用 定价计算器 预先估算 Azure SQL 数据库成本
  • 通过 Azure 成本管理分析支出,识别成本优化机会
  • 使用 Azure Advisor 获得个性化的成本优化建议。

结论

建立并管理高效的 Azure SQL 数据库,离不开稳健的身份验证与连接工具。使用高级安全功能并借助 Azure 的监控工具,能确保数据库保持安全与高效。理解定价层级与影响成本的因素,有助于做出明智决策来优化开支。

按照本教程中的指南,您可以维护一个安全、高性能且具成本效益的 Azure SQL 数据库环境。

想进一步学习 Azure?请查看 Datacamp 的 Azure 基础学习路径。

FAQs

在 Azure SQL Database 中优化查询性能的最佳实践有哪些?

要优化查询性能,请定期使用 Query Performance Insights 工具分析并优化查询。此外,确保正确建立索引,使用参数化查询以防止 SQL 注入,并考虑使用弹性池等数据库扩缩选项来应对可变工作负载。

如何为我的 Azure SQL Database 实现备份自动化?

Azure SQL Database 会自动处理备份,包括完整、差异与事务日志备份,并存储于异地冗余存储中。您可在 Azure 门户的数据库“配置”设置中调整备份保留期,确保数据备份满足业务需求。

Azure SQL Database 与 Azure VM 上的 SQL Server 有何区别?

Azure SQL Database 是面向云原生应用的全托管服务,提供自动备份、补丁与扩缩。Azure VM 上的 SQL Server 则让您对 SQL Server 环境拥有完全控制,可进行自定义配置并满足高性能需求,但需要更多人工管理与维护。

Azure SQL Database 中的单一数据库与弹性池有何区别?

单一数据库是为单租户应用优化的独立数据库。每个数据库拥有自己的资源配额。

弹性池是一组共享资源(eDTU 或 vCore)的数据库。适用于多租户应用,数据库间资源需求各异时能带来成本节省与资源高效利用。

应实施哪些安全措施以保护 Azure SQL Database 中的敏感数据?

为保护敏感数据,请启用透明数据加密(TDE)对静态数据进行加密,并使用 Always Encrypted 以保护传输与静态数据。启用 Azure 内置的高级威胁防护(ATP)用于检测与响应潜在威胁,并通过 Azure Active Directory(AAD)实施强身份验证与授权实践。

Anneleen Rummens

作者

Anneleen Rummens

Anneleen 是一名数据科学家,具备统计学和社会科学背景。她目前在金融行业担任自由职业数据科学家,并攻读应用人工智能的研究生学位。Anneleen 是四门 DataCamp 课程的讲师,其中包括“Azure 管理与治理”。

主题