適用於 Azure SQL 資料庫 之 DNS 別名的 PowerShell
適用於:Azure SQL 資料庫 Azure Synapse Analytics
本文提供 PowerShell 腳本,示範如何管理裝載 Azure SQL 資料庫 之 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 Cosmos DB 試用帳戶
- 兩個伺服器
範例
下列程式代碼範例會先將常值指派給數個變數。
若要執行程式碼,請編輯佔位元值,以符合系統中的實際值。
使用的 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 別名。