你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于管理 Azure SQL 数据库 DNS 别名的 PowerShell
适用于: Azure SQL 数据库 Azure Synapse Analytics
本文提供了一个 PowerShell 脚本,演示如何为托管 Azure SQL 数据库的 SQL 服务器管理 DNS 别名。
注意
本文进行了更新,以便使用 Azure PowerShell Az 模块或 Azure CLI。 你仍然可以使用 AzureRM 模块,至少在 2020 年 12 月之前,它将继续接收 bug 修补程序。
若要详细了解 Az 模块和 AzureRM 兼容性,请参阅 Azure Powershell Az 模块简介。 有关安装说明,请参阅安装 Azure PowerShell 或安装 Azure CLI。
连接字符串中的 DNS 别名
若要连接逻辑 SQL 服务器,如 SQL Server Management Studio (SSMS) 客户端可以提供的 DNS 别名名称而不是真正的服务器名称。 在下面的示例服务器字符串中,别名 any 的唯一别名的名称- 替换四个节点服务器字符串中的第一个圆点分隔节点:
<yourServer>.database.windows.net
先决条件
如果想要运行演示这篇文章中提供的 PowerShell 脚本,适用以下先决条件:
- Azure 订阅和帐户,如需免费试用版,请参阅 Azure 试用版
- 两台服务器
示例
以下代码示例一开始就将文字值分配给多个变量。
若要运行此代码,请编辑占位符值,使之与系统中的实际值匹配。
使用的 cmdlet 如下:
- New-AzSqlServerDNSAlias:在 Azure SQL 数据库服务系统中创建 DNS 别名。 该别名指代服务器 1。
- Get-AzSqlServerDNSAlias:获取并列出分配给服务器 1 的所有别名。
- Set-AzSqlServerDNSAlias:将别名根据配置引用的服务器名称从“服务器 1”修改为“服务器 2”。
- Remove-AzSqlServerDNSAlias:使用别名的名称从服务器 2 删除别名。
若要进行安装或升级,请参阅安装 Azure PowerShell 模块。
在 powershell_ise.exe 中使用 Get-Module -ListAvailable Az
来查找版本。
$subscriptionName = '<subscriptionName>';
$sqlServerDnsAliasName = '<aliasName>';
$resourceGroupName = '<resourceGroupName>';
$sqlServerName = '<sqlServerName>';
$resourceGroupName2 = '<resourceGroupNameTwo>'; # can be same or different than $resourceGroupName
$sqlServerName2 = '<sqlServerNameTwo>'; # must be different from $sqlServerName.
# login to Azure
Connect-AzAccount -SubscriptionName $subscriptionName;
$subscriptionId = Get-AzSubscription -SubscriptionName $subscriptionName;
Write-Host 'Assign an alias to server 1...';
New-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName -ServerName $sqlServerName `
-Name $sqlServerDnsAliasName;
Write-Host 'Get the aliases assigned to server 1...';
Get-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName -ServerName $sqlServerName;
Write-Host 'Move the alias from server 1 to server 2...';
Set-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName2 -TargetServerName $sqlServerName2 `
-Name $sqlServerDnsAliasName `
-SourceServerResourceGroup $resourceGroupName -SourceServerName $sqlServerName `
-SourceServerSubscriptionId $subscriptionId.Id;
Write-Host 'Get the aliases assigned to server 2...';
Get-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName2 -ServerName $sqlServerName2;
Write-Host 'Remove the alias from server 2...';
Remove-AzSqlServerDnsAlias –ResourceGroupName $resourceGroupName2 -ServerName $sqlServerName2 `
-Name $sqlServerDnsAliasName;
后续步骤
有关 SQL 数据库的 DNS 别名功能的完整说明,请参阅 Azure SQL 数据库的 DNS 别名。