Explorer une base de données SQL unique

Effectué

Nous allons examiner plusieurs méthodes de déploiement d’une base de données Azure SQL Database unique.

Déploiement via le portail

Le processus de création d’une base de données unique via le portail Azure est simple. Dans le portail, dans le menu de navigation de gauche, sélectionnez Bases de données SQL. Dans la boîte de dialogue coulissante qui en résulte, cliquez sur Créer :

The Azure portal Azure SQL Database Deployment screen

Dans le panneau de l’image ci-dessous, vous remarquerez que l’abonnement doit déjà vous être fourni. Vous devez indiquer les informations suivantes :

  • Groupe de ressources – S’il existe un groupe de ressources que vous souhaitez utiliser, vous pouvez le sélectionner dans la liste déroulante. Vous pouvez cliquer sur l’option Créer nouveau si vous souhaitez créer un groupe de ressources pour cette base de données Azure SQL Database.
  • Nom de la base de données – Vous devez fournir un nom de base de données.
  • Serveur : chaque base de données doit résider sur un serveur logique. Si vous en avez déjà un dans la région appropriée, vous pouvez choisir de l’utiliser. Dans le cas contraire, vous pouvez cliquer sur le lien Créer nouveau et suivre les invites pour créer un serveur logique visant à héberger la base de données.
  • Voulez-vous utiliser un pool élastique SQL ? – Déterminez s’il convient d’utiliser un pool élastique.
  • Calcul + stockage – Identifiez les ressources de calcul appropriées nécessaires. Par défaut, il s’agit de Gen5, 2 vCores avec 32 Go de stockage jusqu’à ce qu’un autre matériel soit sélectionné. Cliquez sur Configurer la base de données pour voir d’autres options de configuration.

Create SQL Database blade of Azure portal

L’image ci-dessous montre le panneau du portail dans lequel vous pouvez configurer les options de base de données. Ici, vous remarquerez que le niveau de service est Usage général et que le niveau de calcul est Provisionné. Le niveau Provisionné implique que les ressources de calcul sont préallouées et facturées par heure en fonction du nombre de vCores configurés. L’autre option est le modèle serverless, qui a été abordé précédemment. Le modèle serverless est facturé par seconde en fonction du nombre de vCores en cours d’utilisation.

Service Tier selection in Azure portal

Déploiement d’Azure SQL Database via PowerShell/CLI

Vous pouvez également déployer votre base de données via Azure PowerShell ou Azure CLI. L’image ci-dessous montre l’exemple PowerShell dans lequel vous créez un groupe de ressources et définissez un administrateur appelé SqlAdmin, puis créez un serveur, une base de données et une règle de pare-feu.

# 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"

Azure CLI permet également de déployer une base de données Azure SQL Database comme indiqué ci-dessous :

#!/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

Déploiement d’Azure SQL Database à l’aide de modèles Azure Resource Manager

Une autre méthode de déploiement des ressources consiste à utiliser un modèle Azure Resource Manager, comme indiqué précédemment. Un modèle Resource Manager vous donne le contrôle le plus précis sur vos ressources et Microsoft fournit un dépôt GitHub appelé « Azure-Quickstart-Templates », qui héberge les modèles Azure Resource Manager que vous pouvez référencer dans vos déploiements. Un exemple PowerShell de déploiement d’un modèle basé sur GitHub est illustré ci-dessous :

#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 ..."