在 Azure SQL 数据库中创建和管理服务器和单一数据库
可以使用 Azure 门户、PowerShell、Azure CLI、REST API 和 Transact-SQL 在 Azure SQL 数据库中创建和管理服务器和单一数据库。
先决条件
- 一个有效的 Azure 订阅。 如果没有订阅,请创建一个试用帐户。
权限
若要通过 Transact-SQL 创建数据库:需要 CREATE DATABASE
权限。 若要创建数据库,登录名必须是服务器管理员登录名(预配 Azure SQL 数据库逻辑服务器时创建)、服务器的 Microsoft Entra 管理员、master
中 dbmanager 数据库角色的成员。 有关详细信息,请参阅 CREATE DATABASE。
若要通过 Azure 门户、PowerShell、Azure CLI 或 REST API 创建数据库:需要 Azure RBAC 权限,特别是参与者、SQL DB 参与者或 SQL Server 参与者 Azure RBAC 角色。 有关详细信息,请参阅 Azure RBAC 内置角色。
Azure 门户
可以提前创建 Azure SQL 数据库的资源组,也可以在创建服务器本身期间创建。
提示
有关 Azure 门户快速入门,请参阅快速入门:创建单一数据库。
创建服务器
若要使用 Azure 门户创建服务器,请从 Azure 市场新建服务器资源。 或者,可以在部署 Azure SQL 数据库时创建服务器。
创建空白或示例数据库
若要使用 Azure 门户创建单个 Azure SQL 数据库,请在 Azure 市场中选择 Azure SQL 数据库资源。 可以提前创建资源组和服务器,也可以在创建单一服务器自身期间创建。 可以创建空白数据库,也可以创建基于 Adventure Works LT 的示例数据库。
重要
有关为数据库选择定价层的信息,请参阅基于 DTU 的购买模型和基于 vCore 的购买模型。
管理现有服务器
若要管理现有服务器,可使用多种方法导航到服务器,比如从特定数据库页面、SQL 服务器页面或所有资源页面。
若要管理现有数据库,请转到“SQL 数据库”页,然后选择要管理的数据库。 下面的屏幕截图展示了如何通过数据库的“概述”页开始为数据库设置服务器级防火墙。
重要
要配置数据库的性能属性,请参阅基于 DTU 的购买模型和基于 vCore 的购买模型。
PowerShell
注意
本文使用 Azure Az PowerShell 模块,这是与 Azure 交互时推荐使用的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
重要
PowerShell Azure 资源管理器模块仍受 Azure SQL 数据库的支持,但所有未来的开发都是针对 Az.Sql 模块的。 若要了解这些 cmdlet,请参阅 AzureRM.Sql。 Az 模块和 AzureRm 模块中的命令参数大体上是相同的。
若要使用 Azure PowerShell 创建并管理服务器、单一数据库和共用数据库以及服务器级防火墙,请运行以下 PowerShell cmdlet。 如果需要安装或升级 PowerShell,请参阅安装 Azure PowerShell 模块。
提示
有关 PowerShell 示例脚本,请参阅使用 PowerShell 创建单一数据库并配置服务器级防火墙规则和使用 PowerShell 监视和缩放 Azure SQL 数据库中的单一数据库。
Cmdlet | 说明 |
---|---|
New-AzSqlDatabase | 创建数据库 |
Get-AzSqlDatabase | 获取一个或多个数据库 |
Set-AzSqlDatabase | 设置数据库的属性,或将现有数据库移到弹性池中 |
Remove-AzSqlDatabase | 删除数据库 |
New-AzResourceGroup | 创建资源组 |
New-AzSqlServer | 创建服务器 |
Get-AzSqlServer | 返回服务器的相关信息 |
Set-AzSqlServer | 修改服务器的属性 |
Remove-AzSqlServer | 删除服务器 |
New-AzSqlServerFirewallRule | 创建服务器级防火墙规则 |
Get-AzSqlServerFirewallRule | 获取服务器的防火墙规则 |
Set-AzSqlServerFirewallRule | 修改服务器中的防火墙规则 |
Remove-AzSqlServerFirewallRule | 从服务器中删除防火墙规则。 |
New-AzSqlServerVirtualNetworkRule | 基于作为虚拟网络服务终结点的子网创建虚拟网络规则。 |
Azure CLI
若要使用 Azure CLI 创建并管理服务器、数据库和防火墙,请运行以下 Azure CLI 命令。 在 macOS、 Linux 或 Windows 上安装 CLI。 若要创建并管理弹性池,请参阅弹性池。
提示
有关 Azure CLI 快速入门,请参阅 Azure SQL 数据库的 Azure CLI 示例。 有关 Azure CLI 示例脚本,请参阅使用 Azure CLI 创建单一数据库并配置防火墙规则和使用 Azure CLI 监视和缩放 Azure 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 (T-SQL)
若要使用 Transact-SQL 创建并管理服务器、数据库和防火墙,请运行以下 T-SQL 命令。 可以使用 Azure 门户、SQL Server Management Studio、Visual Studio Code 或可以连接到 SQL 数据库服务器并传递 Transact-SQL 命令的其他任何程序来发出这些命令。 有关管理弹性池的信息,请参阅弹性池有助于在 Azure SQL 数据库中管理和缩放多个数据库。
提示
有关在 Microsoft Windows 上使用 SQL Server Management Studio 的快速入门,请参阅 Azure SQL 数据库:使用 SQL Server Management Studio 进行连接和数据查询。 有关在 macOS、Linux 或 Windows 上使用 Visual Studio Code 的快速入门,请参阅 Azure SQL 数据库:使用 Visual Studio Code 进行连接和数据查询。
重要
无法使用 Transact-SQL 创建或删除服务器。
命令 | 说明 |
---|---|
CREATE DATABASE | 新建单一数据库。 你必须连接到 master 数据库才能创建新的数据库。 |
ALTER DATABASE | 修改数据库或弹性池。 |
DROP DATABASE | 删除数据库。 |
sys.database_service_objectives | 返回 Azure SQL 数据库或 Azure Synapse Analytics 中专用 SQL 池的版本(服务层级)、服务目标(定价层)和弹性池名称(若有)。 如果已登录到 SQL 数据库服务器中的 master 数据库,则会返回所有数据库的相关信息。 对于 Azure Synapse Analytics,必须连接到 master 数据库。 |
sys.dm_db_resource_stats | 返回 Azure SQL 数据库中数据库的 CPU、IO 和内存消耗量。 即使数据库中没有活动,也会每隔 15 秒返回一行数据。 |
sys.resource_stats | 返回 Azure SQL 数据库中数据库的 CPU 使用率和存储数据。 在五分钟间隔内收集并聚合数据。 |
sys.database_connection_stats | 包含“SQL 数据库”连接事件的统计信息,提供数据库连接成功和失败状态的概述。 |
sys.event_log | 返回 Azure SQL 数据库的连接成功次数和连接失败次数。 可以使用此信息跟踪 SQL 数据库的数据库活动并排查其问题。 |
sp_set_firewall_rule | 创建或更新服务器的服务器级防火墙设置。 此存储过程只在 master 数据库中适用于服务器级主体登录名。 只有在拥有 Azure 级权限的用户创建首个服务器级防火墙规则后,才能使用 Transact-SQL 创建服务器级防火墙规则 |
sys.firewall_rules | 返回与 Azure SQL 数据库中数据库关联的服务器级防火墙设置的相关信息。 |
sp_delete_firewall_rule | 从服务器中删除服务器级的防火墙设置。 此存储过程只在 master 数据库中适用于服务器级主体登录名。 |
sp_set_database_firewall_rule | 为 Azure SQL 数据库中的数据库创建或更新数据库级防火墙规则。 可以为 master 数据库以及 SQL 数据库上的用户数据库配置数据库防火墙规则。 使用包含的数据库用户时,数据库防火墙规则非常有用。 |
sys.database_firewall_rules | 返回与 Azure SQL 数据库中数据库关联的数据库级防火墙设置的相关信息。 |
sp_delete_database_firewall_rule | 删除数据库中的数据库级防火墙设置。 |
REST API
若要创建并管理服务器、数据库和防火墙,请使用以下 REST API 请求。
命令 | 说明 |
---|---|
服务器 - 创建或更新 | 创建或更新新服务器。 |
Servers - Delete | 删除 SQL Server。 |
Servers - Get | 获取服务器。 |
Servers - List | 返回订阅中的服务器列表。 |
服务器 - 按资源组列出 | 返回资源组中服务器的列表。 |
Servers - Update | 更新现有服务器。 |
数据库 - 创建或更新 | 创建新数据库或更新现有数据库。 |
数据库 - 删除 | 删除数据库。 |
数据库 - 获取 | 获取数据库。 |
数据库 - 按弹性池列出 | 返回弹性池中数据库的列表。 |
数据库 - 按服务器列出 | 返回服务器中的数据库列表。 |
数据库 - 更新 | 更新现有的数据库。 |
防火墙规则 - 创建或更新 | 创建或更新防火墙规则。 |
防火墙规则 - 删除 | 删除防火墙规则。 |
防火墙规则 - 获取 | 获取防火墙规则。 |
防火墙规则 - 按服务器列出 | 返回防火墙规则的列表。 |