次の方法で共有


Azure SQL Database を参照する DNS エイリアス用の PowerShell

適用対象: Azure SQL データベース Azure Synapse Analytics

この記事では、Azure SQL Database をホストする SQL サーバーの DNS エイリアスを管理する方法を示す PowerShell スクリプトについて説明します。

注意

この記事は、Azure PowerShell Az モジュールまたは Azure CLI のいずれかを使用するように更新されています。 AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。

Az モジュールと AzureRM の互換性の詳細については、「Azure PowerShell Az モジュールの概要」を参照してください。 インストール手順については、「Azure PowerShell をインストールする」または「Azure CLI のインストール」を参照してください。

接続文字列内の DNS エイリアス

SQL Server Management Studio (SSMS) などのクライアントでは、論理 SQL サーバーに接続するために、実際のサーバー名の代わりに DNS エイリアス名を指定できます。 次のサーバー文字列の例では、4 ノード サーバー文字列の中で、ドットで区切られた 1 つ目のノードでエイリアス any-unique-alias-name が使用されています。

<yourServer>.database.windows.net

前提条件

この記事で紹介した PowerShell デモ スクリプトを実行する際は、次の前提条件となるものを用意する必要があります。

  • Azure のサブスクリプションとアカウント。無料試用版については、Azure の試用版に関するページを参照してください。
  • 2 台のサーバー

次のコード例は、複数の変数にリテラル値を割り当てることから始まっています。

コードを実行するには、すべてのプレースホルダーの値をシステム内の実際の値と一致するように編集します。

使用されているコマンドレットを次に示します。

  • New-AzSqlServerDNSAlias:Azure SQL Database サービス システム内に DNS エイリアスを作成します。 このエイリアスはサーバー 1 を参照します。
  • Get-AzSqlServerDNSAlias:サーバー 1 に割り当てられているすべてのエイリアスを取得して一覧表示します。
  • Set-AzSqlServerDNSAlias:エイリアスによって参照されるように構成されているサーバー名を、サーバー 1 から サーバー 2 に変更します。
  • Remove-AzSqlServerDNSAlias:エイリアスの名前を使用して、サーバー 2 からエイリアスを削除します。

インストールまたはアップグレードするには、Azure PowerShell モジュールのインストールに関するページを参照してください。

Get-Module -ListAvailable Azpowershell_ise.exe で使用して、バージョンを見つけます。

$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 エイリアス」を参照してください。