Utforska en enskild SQL-databas

Slutförd

Vi ska titta på flera metoder för att distribuera en enkel Azure SQL Database.

Distribuera via portalen

Det är enkelt att skapa en singleton-databas via Azure-portalen. I portalen går du till den vänstra navigeringsmenyn och väljer "SQL Databases". I den resulterande dialogrutan klickar du på "Skapa":

The Azure portal Azure SQL Database Deployment screen

På bladet i bilden nedan ser du att prenumerationen redan ska tillhandahållas åt dig. Du måste ange följande information:

  • Resursgrupp – Om det finns en befintlig resursgrupp som du vill använda kan du välja den i listrutan. Du kan klicka på alternativet "Skapa ny" om du vill skapa en ny resursgrupp för den här Azure SQL Database.
  • Databasnamn – Du måste ange ett databasnamn.
  • Server – Varje databas måste finnas på en logisk server. Om du redan har en i lämplig region kan du välja att använda den. Annars kan du klicka på länken Skapa ny och följa anvisningarna för att skapa en ny logisk server som värd för databasen.
  • Vill du använda elastisk SQL-pool? – Fastställ om du vill använda en elastisk pool.
  • Beräkning + lagring – Fastställa lämpliga beräkningsresurser som behövs. Som standard blir det en Gen5, 2vCore, med 32 GB lagringsutrymme tills något annat har valts. Klicka på Konfigurera databas för att visa alternativa konfigurationsalternativ.

Create SQL Database blade of Azure portal

Bilden nedan visar portalbladet där du kan konfigurera databasalternativen. Här ser du att tjänstnivån är Generell användning och att beräkningsnivån är Etablerad. Etablerad innebär att beräkningsresurserna förallokeras och faktureras per timme baserat på antalet konfigurerade virtuella kärnor. Det andra alternativet är Serverlös, som diskuterades tidigare. Serverlös faktureras per sekund baserat på antalet virtuella kärnor som används.

Service Tier selection in Azure portal

Distribuera en Azure SQL Database via PowerShell/CLI

Du kan också distribuera databasen med hjälp av Azure PowerShell eller Azure CLI. Bilden nedan visar PowerShell-exemplet där du skapar en ny resursgrupp och definierar en administratör med namnet SqlAdmin och sedan skapar en ny server, databas och brandväggsregel.

# 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 kan också användas för att distribuera en Azure SQL Database enligt nedan:

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

Distribuera Azure SQL Database med hjälp av Azure Resource Manager-mallar

En annan metod för att distribuera resurser är som tidigare nämnts med hjälp av en Azure Resource Manager-mall. En Resource Manager-mall ger dig den mest detaljerade kontrollen över dina resurser och Microsoft tillhandahåller en GitHub-lagringsplats med namnet "Azure-Quickstart-Templates", som är värd för Azure Resource Manager-mallar som du kan referera till i dina distributioner. Ett PowerShell-exempel på hur du distribuerar en GitHub-baserad mall visas nedan:

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