Avvio rapido: creare un database singolo in database SQL di Azure usando un modello di ARM

Si applica a: database SQL di Azure

La creazione di un database singolo è l'opzione più semplice e rapida per la creazione di database nel database SQL di Azure. Questo argomento di avvio rapido illustra come creare un database singolo usando un modello di Azure Resource Manager.

Un modello ARM è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello utilizza la sintassi dichiarativa. Nella sintassi dichiarativa, descrivi la distribuzione prevista senza scrivere la sequenza dei comandi di programmazione per creare la distribuzione.

Se l'ambiente soddisfa i prerequisiti e si ha familiarità con l'uso dei modelli di Resource Manager, selezionare il pulsante Distribuisci in Azure. Il modello verrà aperto nel portale di Azure.

Distribuisci in Azure

Prerequisiti

Se non hai una sottoscrizione di Azure, crea un account gratuito.

Autorizzazioni

Per creare database tramite Transact-SQL: sono necessarie le autorizzazioni CREATE DATABASE. Per creare un database, un account di accesso deve essere l'amministratore del server (creato durante il provisioning del server logico di database SQL di Azure), l'amministratore Microsoft Entra del server o un membro del ruolo del database dbmanager in master. Per altre informazioni, vedere CREATE DATABASE.

Per creare database tramite il portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o l'API REST: sono necessarie le autorizzazioni di Controllo degli accessi in base al ruolo di Azure, in particolare i ruoli Controllo degli accessi in base al ruolo di Azure Contributore, Contributore Database SQL o Contributore SQL Server. Per altre informazioni, vedere Controllo degli accessi in base al ruolo di Azure: ruoli predefiniti.

Rivedere il modello

Un database singolo include un set definito di risorse di calcolo, memoria, I/O e archiviazione basate su uno dei due modelli di acquisto. Quando si crea un database singolo, si definisce anche un server per gestirlo e lo si colloca all'interno di un gruppo di risorse di Azure in un'area specificata.

Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.12.40.16777",
      "templateHash": "16856611863128783179"
    }
  },
  "parameters": {
    "serverName": {
      "type": "string",
      "defaultValue": "[uniqueString('sql', resourceGroup().id)]",
      "metadata": {
        "description": "The name of the SQL logical server."
      }
    },
    "sqlDBName": {
      "type": "string",
      "defaultValue": "SampleDB",
      "metadata": {
        "description": "The name of the SQL Database."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "administratorLogin": {
      "type": "string",
      "metadata": {
        "description": "The administrator username of the SQL logical server."
      }
    },
    "administratorLoginPassword": {
      "type": "secureString",
      "metadata": {
        "description": "The administrator password of the SQL logical server."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Sql/servers",
      "apiVersion": "2022-05-01-preview",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]"
      }
    },
    {
      "type": "Microsoft.Sql/servers/databases",
      "apiVersion": "2022-05-01-preview",
      "name": "[format('{0}/{1}', parameters('serverName'), parameters('sqlDBName'))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard",
        "tier": "Standard"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Sql/servers', parameters('serverName'))]"
      ]
    }
  ]
}

Nel modello sono definite queste risorse:

Altri esempi di modelli di database SQL di Azure sono disponibili in Modelli di avvio rapido di Azure.

Distribuire il modello

Selezionare Provalo dal blocco di codice PowerShell seguente per aprire Azure Cloud Shell.

$projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names"
$location = Read-Host -Prompt "Enter an Azure location (i.e. centralus)"
$adminUser = Read-Host -Prompt "Enter the SQL server administrator username"
$adminPassword = Read-Host -Prompt "Enter the SQL Server administrator password" -AsSecureString

$resourceGroupName = "${projectName}rg"

New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.sql/sql-database/azuredeploy.json" -administratorLogin $adminUser -administratorLoginPassword $adminPassword

Read-Host -Prompt "Press [ENTER] to continue ..."

Convalidare la distribuzione

Per eseguire query sul database, vedere Eseguire query sul database.

Pulire le risorse

Conservare il gruppo di risorse, il server e il database singolo se lo si desidera. Ora è possibile connettersi al database ed eseguire query con diversi metodi.

  1. Creare una regola del firewall a livello di server per connettersi al database singolo da strumenti locali o remoti. Per altre informazioni, vedere Creare una regola di firewall a livello di server.
  2. Dopo aver creato una regola del firewall a livello di server, è possibile connettersi al database ed eseguire query usando diversi strumenti e linguaggi:

Se si desidera eliminare il gruppo di risorse:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName