Esplorare un singolo database SQL

Completato

Verranno esaminati diversi metodi per la distribuzione di un database SQL di Azure singolo.

Distribuzione tramite il portale

Il processo di creazione di un database singolo tramite il portale di Azure è semplice. Nel menu di spostamento a sinistra del portale selezionare "Database SQL". Nella finestra di dialogo scorrevole risultante fare clic su "Crea":

Schermata di distribuzione del database SQL di Azure nel portale di Azure

Nel pannello nell'immagine seguente si noterà che la sottoscrizione deve essere già fornita. Sarà necessario specificare le informazioni seguenti:

  • Gruppo di risorse: se si vuole usare un gruppo di risorse esistente, è possibile selezionarlo dall'elenco a discesa. È possibile fare clic sull'opzione "Crea nuovo" se si desidera creare un nuovo gruppo di risorse per il database SQL di Azure.
  • Nome database: è necessario specificare un nome di database.
  • Server – ogni database deve risiedere in un server logico. Se ne esiste già uno nell'area appropriata, è possibile scegliere di usarlo. In caso contrario, è possibile fare clic sul collegamento Crea nuovo e seguire le istruzioni per creare un nuovo server logico per ospitare il database.
  • Usare il pool elastico SQL? - Determinare se usare un pool elastico.
  • Calcolo + archiviazione: determinare le risorse di calcolo appropriate necessarie. Per impostazione predefinita, si tratta di una quinta generazione, 2vCore, con 32 GB di spazio di archiviazione fino a quando non viene selezionato un altro elemento. Fare clic su Configura database per visualizzare le opzioni di configurazione alternative.

Pannello Crea database SQL del portale di Azure

L'immagine seguente mostra il pannello del portale in cui è possibile configurare le opzioni del database. Qui si noterà che il livello di servizio è per utilizzo generico e viene effettuato il provisioning del livello di calcolo. Il provisioning implica che le risorse di calcolo vengono preallocate e fatturate ogni ora in base al numero di vCore configurati. L'altra opzione è serverless, descritta in precedenza. L’opzione serverless presenta una fatturazione al secondo in base al numero di vCore in uso.

Selezione del livello di servizio nel portale di Azure

Distribuzione di un database SQL di Azure tramite PowerShell/interfaccia della riga di comando

È anche possibile distribuire il database tramite Azure PowerShell o l'interfaccia della riga di comando di Azure. L'immagine seguente illustra l'esempio di PowerShell in cui si crea un nuovo gruppo di risorse, si definisce un amministratore denominato SqlAdmin e quindi si creano un nuovo server, un database e una regola del firewall.

# Connect-AzAccount

# The SubscriptionId in which to create these objects
$SubscriptionId = ''

# Set the resource group name and location for your server
$resourceGroupName = "myResourceGroup-$(Get-Random)"
$location = "westus2"

# Set an admin login and password for your server
$adminSqlLogin = "SqlAdmin"
$password = "ChangeYourAdminPassword1"

# Set server name - the logical server name has to be unique in the system
$serverName = "server-$(Get-Random)"

# The sample database name
$databaseName = "mySampleDatabase"

# The ip address range that you want to allow to access your server
$startIp = "0.0.0.0"
$endIp = "0.0.0.0"

# Set subscription
Set-AzContext -SubscriptionId $subscriptionId

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

# Create a server with a system wide unique server name
$server = New-AzSqlServer -ResourceGroupName $resourceGroupName `
 -ServerName $serverName `
 -Location $location `
 -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminSqlLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))

# Create a server firewall rule that allows access from the specified IP range

$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
 -ServerName $serverName `
 -FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp

# Create a blank database with an S0 performance level

$database = New-AzSqlDatabase -ResourceGroupName $resourceGroupName `
 -ServerName $serverName `
 -DatabaseName $databaseName `
 -RequestedServiceObjectiveName "S0" `
 -SampleName "AdventureWorksLT"

L'interfaccia della riga di comando di Azure può essere usata anche per distribuire un database SQL di Azure come illustrato di seguito:

#!/bin/bash

# set execution context (if necessary)
az account set --subscription <replace with your subscription name or id>

# Set the resource group name and location for your server
resourceGroupName=myResourceGroup-$RANDOM
location=westus2

# Set an admin login and password for your database
adminlogin=ServerAdmin
password=`openssl rand -base64 16`

# password=<EnterYourComplexPasswordHere1>

# The logical server name has to be unique in all of Azure 
servername=server-$RANDOM

# The ip address range that you want to allow to access your DB
startip=0.0.0.0
endip=0.0.0.0

# Create a resource group
az group create \
 --name $resourceGroupName \
 --location $location

# Create a logical server in the resource group
az sql server create \
 --name $servername \
 --resource-group $resourceGroupName \
 --location $location \
 --admin-user $adminlogin \
 --admin-password $password

# Configure a firewall rule for the server

az sql server firewall-rule create \
 --resource-group $resourceGroupName \
 --server $servername \
 -n AllowYourIp \
 --start-ip-address $startip \
 --end-ip-address $endip

# Create a database in the server
az sql db create \
 --resource-group $resourceGroupName \
 --server $servername 
 --name mySampleDatabase \
 --sample-name AdventureWorksLT \
 --edition GeneralPurpose \
 --family Gen4 \
 --capacity 1 \

# Echo random password
echo $password

Distribuzione del database SQL di Azure tramite modelli di Azure Resource Manager

Un altro metodo per la distribuzione delle risorse è, come indicato in precedenza, l'uso di un modello di Azure Resource Manager. Un modello di Resource Manager offre il controllo più granulare sulle risorse e Microsoft fornisce un repository GitHub denominato "Azure-Quickstart-templates", che ospita modelli di Azure Resource Manager a cui è possibile fare riferimento nelle distribuzioni. Di seguito è riportato un esempio di PowerShell per la distribuzione di un modello basato su GitHub:

#Define Variables for parameters to pass to template
$projectName = Read-Host -Prompt "Enter a project name"
$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"

#Create Resource Group and Deploy Template to Resource Group
New-AzResourceGroup -Name $resourceGroupName -Location $location

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
 -TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-sql-logical-server/azuredeploy.json" `
 -administratorLogin $adminUser -administratorLoginPassword $adminPassword

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