適用於 Azure SQL Database 之 DNS 別名的 PowerShell

適用于:Azure SQL資料庫 Azure Synapse分析

本文提供的 PowerShell 指令碼會示範如何管理裝載 Azure SQL Database 之 SQL Server 的 DNS 別名。

注意

本文已更新為使用 Azure PowerShell Az 模組或 Azure CLI。 AzureRM 模組在至少 2020 年 12 月之前都還會持續收到錯誤 (Bug) 修正,因此您仍然可以持續使用。

若要深入了解 Az 模組和 AzureRM 的相容性,請參閱 Azure PowerShell Az 模組簡介。 如需安裝指示,請參閱安裝 Azure PowerShell安裝 Azure CLI

連接字串中的 DNS 別名

若要連線至邏輯 SQL Server,SQL Server Management Studio (SSMS) 等用戶端可以提供 DNS 別名名稱,而不必提供真實的伺服器名稱。 在下列伺服器字串範例中,any-unique-alias-name 別名會取代四個節點伺服器字串中第一個以點分隔的節點:

<yourServer>.database.windows.net

必要條件

如果您想要執行本文中提供的 PowerShell 示範指令碼,則適用下列必要條件:

  • Azure 訂閱和帳戶。如需免費試用,請參閱 Azure 試用
  • 兩個伺服器

範例

下列程式碼範例一開始會將常值指派給數個變數。

若要執行程式碼,請編輯預留位置值,使其符合您系統中的實際值。

使用的 Cmdlet 如下:

若要安裝或升級,請參閱安裝 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 Database 的 DNS 別名功能完整說明,請參閱 Azure SQL Database 的 DNS 別名