適用於 Azure SQL 資料庫 之 DNS 別名的 PowerShell

適用於:Azure SQL 資料庫Azure Synapse Analytics

本文提供 PowerShell 腳本,示範如何管理裝載 Azure SQL 資料庫 之 SQL ServerDNS 別名。

注意

本文已更新為使用 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 文稿,適用下列必要條件:

範例

下列程式代碼範例會先將常值指派給數個變數。

若要執行程式碼,請編輯佔位元值,以符合系統中的實際值。

使用的 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 資料庫 DNS 別名功能的完整說明,請參閱 Azure SQL 資料庫 的 DNS 別名。