创建并管理 Azure SQL 数据库服务器和数据库

Azure SQL 数据库是 Azure 中的托管数据库,通过一组定义的针对不同工作负荷的计算和存储资源Azure 资源组中创建而成。 Azure SQL 数据库与在特定 Azure 区域内创建的 Azure SQL 数据库逻辑服务器相关联。

Azure SQL 数据库可以是单一数据库、共用数据库或分区数据库

Azure SQL 数据库可以是:

Tip

如需有效的数据库名称,请参阅 Database Identifiers(数据库标识符)。

  • Azure SQL 数据库使用的默认数据库排序规则是 SQL_LATIN1_GENERAL_CP1_CI_AS。其中,LATIN1_GENERAL 是英语(美国),CP1 是代码页 1252,CI 是不区分大小写,AS 是区分重音。 有关如何设置排序规则的详细信息,请参阅 COLLATE (Transact-SQL)
  • Microsoft Azure SQL 数据库支持表格格式数据流 (TDS) 协议客户端 7.3 版或更高版本。
  • 只允许 TCP/IP 连接。

什么是 Azure SQL 逻辑服务器?

逻辑服务器用作多个数据库的中心管理点,包括 SQL 弹性池登录名防火墙规则审核规则威胁检测策略故障转移组。 逻辑服务器可以与其资源组位于不同的区域。 必须先创建逻辑服务器,然后才能创建 Azure SQL 数据库。 服务器上的所有数据库都在逻辑服务器所在的同一区域内创建而成。

Important

在 SQL 数据库中,服务器是一个逻辑构造,它不同于在本地环境中可能很熟悉的 SQL Server 实例。 具体而言,SQL 数据库服务对数据库相对于其逻辑服务器的位置不做出任何保证,并且不公开任何实例级访问权限或功能。

创建逻辑服务器时,提供服务器登录帐户和密码,此凭据有权管理服务器上的 master 数据库及其上创建的所有数据库。 这一初始帐户就是 SQL 登录帐户。 Azure SQL 数据库支持结合使用 SQL 身份验证和 Azure Active Directory 身份验证以进行身份验证。 若要详细了解登录名和身份验证,请参阅在 Azure SQL 数据库中管理数据库和登录名。 不支持 Windows 身份验证。

Tip

如需有效的资源组和服务器名称,请参阅命名规则和限制

Azure 数据库逻辑服务器:

  • 在某个 Azure 订阅中创建,但可以与其包含的资源一起移到另一个订阅
  • 是数据库、弹性池和数据仓库的父资源
  • 为数据库、弹性池和数据仓库提供命名空间
  • 是具有强生存期语义的逻辑容器。也就是说,删除服务器也会随之删除包含的数据库、弹性池和数据仓库
  • 参与 Azure 基于角色的访问控制 (RBAC)。也就是说,服务器中的数据库、弹性池和数据库从服务器继承访问权限
  • 是位置靠前的数据库、弹性池和数据仓库标识元素,用于管理 Azure 资源(请参阅“数据库和池的 URL 方案”)
  • 在区域中并置资源
  • 为数据库访问提供连接终结点 (.database.chinacloudapi.cn)
  • 通过连接到 master 数据库通过 DMV 提供对所含资源相关元数据的访问方式
  • 提供应用于数据库的管理策略的作用域,即登录名、防火墙、审核、威胁检测等。
  • 受父订阅中的配额限制(默认情况下,每个订阅六个服务器,请单击此处了解订阅限制
  • 提供所含资源的数据库配额和 DTU 配额范围(例如,45,000 个 DTU)
  • 是在包含资源上启用的功能的版本控制作用域
  • 服务器级主体登录名可以管理服务器上的所有数据库
  • 可以包含的登录名类似于本地 SQL Server 实例中的登录名,这些登录名有权访问服务器上的一个或多个数据库,并且可以被授予有限的管理权限。 有关详细信息,请参阅登录名

Azure SQL 数据库受 SQL 数据库防火墙保护

为了帮助保数据,SQL 数据库防火墙会阻止通过以下方式访问数据库服务器或其所有数据库:不是直接通过 Azure 订阅连接与服务器相连。 若要启用其他连接方案,必须创建一个或多个防火墙规则。 若要创建并管理 SQL 弹性池,请参阅弹性池

使用 Azure 门户管理 Azure SQL 服务器、数据库和防火墙

可以提前创建 Azure SQL 数据库的资源组,也可以在创建服务器本身期间创建。 转到新 SQL 服务器表单的方法有多种,可以通过新建 SQL 服务器,也可以在新建数据库期间。

创建空白 SQL 服务器(逻辑服务器)

若要使用 Azure 门户创建 Azure SQL 数据库服务器(不含数据库),请转到空白 SQL 服务器(逻辑服务器)表单。 下面的屏幕截图展示了一种打开用于创建空白逻辑 SQL 服务器的表单的方法。

创建逻辑服务器完成窗体

如果使用其他方法转到此表单,表单上的信息完全相同。

创建空白或示例 SQL 数据库

若要使用 Azure 门户创建 Azure SQL 数据库,请转到空白 SQL 数据库表单,并输入相应信息。 可以提前创建 Azure SQL 数据库的资源组和逻辑服务器,也可以在创建数据库本身期间创建。 可以创建空白数据库,也可以创建基于 Adventure Works LT 的示例数据库。

创建数据库 - 1

Important

若要了解如何选择数据库定价层,请参阅服务层

管理现有 SQL 服务器

若要管理现有服务器,请使用多种方法转到服务器,如通过特定 SQL 数据库网页、“SQL 服务器”页或“所有资源”页。 下面的屏幕截图展示了如何通过服务器的“概述”页开始设置服务器级防火墙。

逻辑服务器概览

若要管理现有数据库,请转到“SQL 数据库”页,再单击要管理的数据库。 下面的屏幕截图展示了如何通过数据库的“概述”页开始为数据库设置服务器级防火墙。

服务器防火墙规则

Important

若要配置数据库的性能属性,请参阅服务层

Tip

有关 Azure 门户快速入门教程,请参阅在 Azure 门户中创建 Azure SQL 数据库

使用 PowerShell 管理 Azure SQL 服务器、数据库和防火墙

若要使用 Azure PowerShell 创建并管理 Azure SQL 服务器、数据库和防火墙,请运行以下 PowerShell cmdlet。 如果需要安装或升级 PowerShell,请参阅安装 Azure PowerShell 模块。 若要创建并管理 SQL 弹性池,请参阅弹性池

Cmdlet 说明
New-AzureRmSqlDatabase 创建数据库
Get-AzureRmSqlDatabase 获取一个或多个数据库
Set-AzureRmSqlDatabase 设置数据库的属性,或将现有数据库移到弹性池中
Remove-AzureRmSqlDatabase 删除数据库
New-AzureRmResourceGroup 创建资源组
New-AzureRmSqlServer 创建服务器
Get-AzureRmSqlServer 返回服务器的相关信息
Set-AzureRmSqlServer 修改服务器的属性
Remove-AzureRmSqlServer 删除服务器
New-AzureRmSqlServerFirewallRule 创建服务器级防火墙规则
Get-AzureRmSqlServerFirewallRule 获取服务器的防火墙规则
Set-AzureRmSqlServerFirewallRule 修改服务器中的防火墙规则
Remove-AzureRmSqlServerFirewallRule 从服务器中删除防火墙规则。

使用 Azure CLI 管理 Azure SQL 服务器、数据库和防火墙

若要使用 Azure CLI 创建并管理 Azure SQL 服务器、数据库和防火墙,请运行 Azure CLI SQL 数据库命令。 使用 Cloud Shell 在浏览器中运行 CLI,或者在 macOS、Linux 或 Windows 上安装它。 若要创建并管理 SQL 弹性池,请参阅弹性池

Cmdlet 说明
az sql db create 创建数据库
az sql db list 列出某台服务器中的所有数据库和数据仓库,或者列出弹性池中的所有数据库
az sql db list-editions 列出可用的服务目标和存储限制
az sql db list-usages 返回数据库使用情况
az sql db show 获取数据库或数据仓库
az sql db update 更新数据库
az sql db delete 删除数据库
az group create 创建资源组
az sql server create 创建服务器
az sql server list 列出服务器
az sql server list-usages 返回服务器使用情况
az sql server show 获取服务器
az sql server update 更新服务器
az sql server delete 删除服务器
az sql server firewall-rule create 配置服务器防火墙规则
az sql server firewall-rule list 列出服务器上的防火墙规则
az sql server firewall-rule show 显示防火墙规则的详细信息
az sql server firewall-rule update 更新防火墙规则
az sql server firewall-rule delete 删除防火墙规则。

使用 Transact-SQL 管理 Azure SQL 服务器、数据库和防火墙

若要使用 Transact-SQL 创建并管理 Azure SQL 服务器、数据库和防火墙,请运行以下 T-SQL 命令。 可以使用 Azure 门户、SQL Server Management StudioVisual Studio Code 或可以连接到 Azure SQL 数据库服务器并传递 Transact-SQL 命令的其他任何程序,发出这些命令。 若要了解如何管理 SQL 弹性池,请参阅弹性池

Important

无法使用 Transact-SQL 创建或删除服务器。

命令 说明
CREATE DATABASE(Azure SQL 数据库) 新建数据库。 必须连接到 master 数据库才能新建数据库。
ALTER DATABASE(Azure SQL 数据库) 修改 Azure SQL 数据库。
ALTER DATABASE(Azure SQL 数据仓库) 修改 Azure SQL 数据仓库。
DROP DATABASE (Transact-SQL) 删除数据库。
sys.database_service_objectives(Azure SQL 数据库) 返回 Azure SQL 数据库或 Azure SQL 数据仓库的版本(服务层)、服务目标(定价层)和弹性池名称(若有)。 如果已登录到 Azure SQL 数据库服务器中的 master 数据库,则会返回所有数据库的相关信息。 对于 Azure SQL 数据仓库,必须连接到 master 数据库。
sys.dm_db_resource_stats(Azure SQL 数据库) 返回“Azure SQL 数据库”数据库的 CPU、I/O 和内存消耗量。 即使数据库中没有活动,也会每隔 15 秒返回一行数据。
sys.resource_stats(Azure SQL 数据库) 返回 Azure SQL 数据库的 CPU 使用率和存储数据。 在五分钟间隔内收集并聚合数据。
sys.database_connection_stats(Azure SQL 数据库) 包含“SQL 数据库”数据库连接事件的统计信息,提供数据库连接成功和失败状态的概述。
sys.event_log(Azure SQL 数据库) 返回成功的“Azure SQL 数据库”数据库连接数、连接失败次数和死锁数。 可以使用此信息跟踪 SQL 数据库的数据库活动并排查其问题。
sp_set_firewall_rule(Azure SQL 数据库) 创建或更新 SQL 数据库服务器的服务器级防火墙设置。 此存储过程仅在服务器级别主体登录名的 master 数据库中可用。 只有在拥有 Azure 级权限的用户创建首个服务器级防火墙规则后,才能使用 Transact-SQL 创建服务器级防火墙规则
sys.firewall_rules(Azure SQL 数据库) 返回与 Azure SQL 数据库关联的服务器级防火墙设置的相关信息。
sp_delete_firewall_rule(Azure SQL 数据库) 从 SQL 数据库服务器中删除服务器级防火墙设置。 此存储过程仅在服务器级别主体登录名的 master 数据库中可用。
sp_set_database_firewall_rule(Azure SQL 数据库) 创建或更新 Azure SQL 数据库或 SQL 数据仓库的数据库级防火墙规则。 可以为 master 数据库以及 SQL 数据库上的用户数据库配置数据库防火墙规则。 使用包含的数据库用户时,数据库防火墙规则非常有用。
sys.database_firewall_rules(Azure SQL 数据库) 返回与 Azure SQL 数据库关联的数据库级防火墙设置的相关信息。
sp_delete_database_firewall_rule(Azure SQL 数据库) 从 Azure SQL 数据库或 SQL 数据仓库中删除数据库级防火墙规则设置。
Tip

有关在 Microsoft Windows 上使用 SQL Server Management Studio 的快速入门教程,请参阅 Azure SQL 数据库:使用 SQL Server Management Studio 进行连接和数据查询。 有关在 macOS、Linux 或 Windows 上使用 Visual Studio Code 的快速入门教程,请参阅 Azure SQL 数据库:使用 Visual Studio Code 进行连接和数据查询

使用 REST API 管理 Azure SQL 服务器、数据库和防火墙

若要使用 REST API 创建并管理 Azure SQL 服务器、数据库和防火墙,请参阅 Azure SQL 数据库 REST API

后续步骤