Deploy Azure SQL

Overview

Learn how to deploy an Azure SQL Database using Azure Portal, Azure CLI, and ARM templates. This tutorial walks you through prerequisites, step‑by‑step deployment, and post‑deployment verification.

Prerequisites

Deploy via Azure Portal

1
Open Azure Portal and click Create a resource.
2
Select Databases > Azure SQL and click Create.
3
Configure the following:
  • Subscription: Choose your subscription
  • Resource group: Select or create a new one
  • Database name: mySampleDb
  • Server: Create a new server (provide server name, admin login, password, and region)
  • Compute + storage: Choose the appropriate tier (e.g., General Purpose, 5 DTUs)
4
Click Review + create then Create. Deployment takes a few minutes.

Deploy via Azure CLI

Bash
PowerShell
# Variables
RESOURCE_GROUP="myResourceGroup"
SERVER_NAME="myazuresqlserver$(date +%s)"
LOCATION="eastus"
ADMIN_USER="sqladmin"
ADMIN_PASS="P@ssw0rd1234"
DB_NAME="mySampleDb"

# Create resource group
az group create --name $RESOURCE_GROUP --location $LOCATION

# Create SQL server
az sql server create \
  --name $SERVER_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --admin-user $ADMIN_USER \
  --admin-password $ADMIN_PASS

# Allow Azure services to access the server
az sql server firewall-rule create \
  --resource-group $RESOURCE_GROUP \
  --server $SERVER_NAME \
  --name AllowAzureServices \
  --start-ip-address 0.0.0.0 \
  --end-ip-address 0.0.0.0

# Create database
az sql db create \
  --resource-group $RESOURCE_GROUP \
  --server $SERVER_NAME \
  --name $DB_NAME \
  --service-objective S0

echo "Deployment complete. Server: $SERVER_NAME, Database: $DB_NAME"
# Variables
$resourceGroup = "myResourceGroup"
$serverName = "myazuresqlserver$([int][Math]::Floor((Get-Date).ToUniversalTime().Subtract([datetime]'1970-01-01').TotalSeconds))"
$location = "EastUS"
$adminUser = "sqladmin"
$adminPass = ConvertTo-SecureString "P@ssw0rd1234" -AsPlainText -Force
$dbName = "mySampleDb"

# Create resource group
New-AzResourceGroup -Name $resourceGroup -Location $location

# Create SQL server
New-AzSqlServer -ResourceGroupName $resourceGroup `
    -ServerName $serverName `
    -Location $location `
    -SqlAdministratorCredentials (New-Object System.Management.Automation.PSCredential($adminUser,$adminPass))

# Allow Azure services
New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroup `
    -ServerName $serverName `
    -FirewallRuleName "AllowAzureServices" `
    -StartIpAddress "0.0.0.0" -EndIpAddress "0.0.0.0"

# Create database
New-AzSqlDatabase -ResourceGroupName $resourceGroup `
    -ServerName $serverName `
    -DatabaseName $dbName `
    -RequestedServiceObjectiveName "S0"

Write-Host "Deployment complete. Server: $serverName, Database: $dbName"

Deploy via ARM Template

Save the JSON below as azuredeploy.json and run the deployment command.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": { "type": "string" },
    "adminUser":   { "type": "string" },
    "adminPassword": { "type": "secureString" },
    "databaseName": { "type": "string" },
    "location": { "type": "string", "defaultValue": "eastus" }
  },
  "resources": [
    {
      "type": "Microsoft.Sql/servers",
      "apiVersion": "2022-05-01-preview",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "properties": {
        "administratorLogin": "[parameters('adminUser')]",
        "administratorLoginPassword": "[parameters('adminPassword')]",
        "version": "12.0"
      }
    },
    {
      "type": "Microsoft.Sql/servers/firewallRules",
      "apiVersion": "2022-05-01-preview",
      "name": "[concat(parameters('serverName'), '/AllowAzureServices')]",
      "properties": {
        "startIpAddress": "0.0.0.0",
        "endIpAddress": "0.0.0.0"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Sql/servers', parameters('serverName'))]"
      ]
    },
    {
      "type": "Microsoft.Sql/servers/databases",
      "apiVersion": "2022-05-01-preview",
      "name": "[concat(parameters('serverName'), '/', parameters('databaseName'))]",
      "properties": {
        "collation": "SQL_Latin1_General_CP1_CI_AS",
        "maxSizeBytes": "1073741824"
      },
      "sku": {
        "name": "S0",
        "tier": "Standard"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Sql/servers', parameters('serverName'))]"
      ]
    }
  ]
}

Deploy with:

az deployment group create \
  --name DeployAzureSQL \
  --resource-group myResourceGroup \
  --template-file azuredeploy.json \
  --parameters serverName=myazuresqlserver adminUser=sqladmin adminPassword=P@ssw0rd1234 databaseName=mySampleDb

Post‑deployment Verification

  1. Connect with sqlcmd or SSMS using the server name <serverName>.database.windows.net.
  2. Run SELECT DB_NAME(); to confirm the database.
  3. Enable firewall rule for your IP if needed.