| title | DNS Alias (PowerShell & Azure CLI) | |||
|---|---|---|---|---|
| titleSuffix | Azure SQL Database | |||
| description | PowerShell and Azure CLI cmdlets enable you to redirect new client connections to a different SQL server in Azure, without having to touch any client configuration. | |||
| author | rajeshsetlem | |||
| ms.author | rsetlem | |||
| ms.reviewer | wiassaf, mathoma, amagarwa, maboja, vanto | |||
| ms.date | 05/29/2026 | |||
| ms.service | azure-sql-database | |||
| ms.subservice | high-availability | |||
| ms.topic | how-to | |||
| ms.custom |
|
|||
| keywords | dns sql database | |||
| ms.devlang | powershell |
[!INCLUDEappliesto-sqldb]
This article provides Azure PowerShell Az module or Azure CLI scripts to demonstrate how you can manage a DNS alias for the Azure SQL logical server hosting your Azure SQL Database.
To connect a logical SQL server, a client such as SQL Server Management Studio (SSMS) can provide the DNS alias name instead of the true server name. In the following example server string, the alias any-unique-alias-name replaces the first dot-delimited node in the four node server string:
<yourServer>.database.windows.net
To run the demo PowerShell script given in this article, ensure the following prerequisites:
- An Azure subscription and account. For a free trial, see Azure trials.
- Two Azure SQL logical servers.
- Install the Azure PowerShell module or the Azure CLI.
The following code example starts by assigning literal values to several variables.
To run the code, edit the placeholder values to match real values in your system.
Use the following cmdlets:
- New-AzSqlServerDNSAlias: Creates a DNS alias in the Azure SQL Database service system. The alias refers to server 1.
- Get-AzSqlServerDNSAlias: Gets and lists all the aliases assigned to server 1.
- Set-AzSqlServerDNSAlias: Modifies the server name that the alias refers to, changing from server 1 to server 2.
- Remove-AzSqlServerDNSAlias: Removes the alias from server 2 by using the name of the alias.
To install or upgrade, see Install Azure PowerShell module.
Use Get-Module -ListAvailable Az in powershell_ise.exe to find the version.
$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;Use the following commands:
- az sql server dns-alias create: Creates a DNS alias for a server. The alias refers to server 1.
- az sql server dns-alias show: Gets and lists all the aliases assigned to server 1.
- az sql server dns-alias set: Modifies the server name that the alias refers to, changing from server 1 to server 2.
- az sql server dns-alias delete: Removes the alias from server 2 by using the name of the alias.
To install or upgrade, see Install Azure CLI.
$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
az login -SubscriptionName $subscriptionName;
$subscriptionId = az account list[0].i -SubscriptionName $subscriptionName;
Write-Host 'Assign an alias to server 1...';
az sql server dns-alias create –-resource-group $resourceGroupName --server $sqlServerName `
--name $sqlServerDnsAliasName;
Write-Host 'Get the aliases assigned to server 1...';
az sql server dns-alias show –-resource-group $resourceGroupName --server $sqlServerName;
Write-Host 'Move the alias from server 1 to server 2...';
az sql server dns-alias set –-resource-group $resourceGroupName2 --server $sqlServerName2 `
--name $sqlServerDnsAliasName `
--original-resource-group $resourceGroupName --original-server $sqlServerName `
--original-subscription-id $subscriptionId.Id;
Write-Host 'Get the aliases assigned to server 2...';
az sql server dns-alias show –-resource-group $resourceGroupName2 --server $sqlServerName2;
Write-Host 'Remove the alias from server 2...';
az sql server dns-alias delete –-resource-group $resourceGroupName2 --server $sqlServerName2 `
--name $sqlServerDnsAliasName;