Erkunden einer einzelnen SQL-Datenbank

Abgeschlossen

In dieser Lerneinheit lernen Sie verschiedene Methoden zum Bereitstellen eines Singletons in Azure SQL-Datenbank kennen.

Bereitstellen über das Portal

Die Erstellung eines Singletons über das Azure-Portal ist sehr unkompliziert. Klicken Sie im Portal im linken Navigationsmenü auf „SQL-Datenbanken“. Klicken Sie im Dialogfeld, das angezeigt wird, auf „Erstellen“:

Der Bereitstellungsbildschirm für Azure SQL-Datenbank-Instanzen im Azure-Portal

Auf dem Blatt in der folgenden Abbildung wird gezeigt, dass Ihr Abonnement bereits ausgewählt sein sollte. Sie müssen die folgenden Informationen bereitstellen:

  • Ressourcengruppe: Wenn Sie eine bestehende Ressourcengruppe verwenden möchten, können Sie diese aus der Dropdownliste auswählen. Wenn Sie eine neue Ressourcengruppe für diese Instanz von Azure SQL-Datenbank erstellen möchten, klicken Sie auf „Neu erstellen“.
  • Datenbankname: Geben Sie einen Datenbanknamen an.
  • Server: Jede Datenbank muss sich auf einem logischen Server befinden. Wenn Sie in der entsprechenden Region bereits über eine Datenbank verfügen, können Sie sie verwenden. Andernfalls können Sie auf Neu erstellen klicken und die Anleitung befolgen, um einen neuen logischen Server zu erstellen, auf dem die Datenbank gehostet wird.
  • Möchten Sie einen Pool für elastische SQL-Datenbanken verwenden? Entscheiden Sie, ob ein Pool für elastische Datenbanken verwendet werden soll.
  • Compute und Speicher: Ermitteln Sie die erforderlichen Computeressourcen. Standardmäßig handelt es sich um Gen5-Computeressourcen mit 2 virtuellen Kernen und 32 GB Speicher, es sei denn, Sie treffen eine andere Auswahl. Klicken Sie auf Datenbank konfigurieren, um alternative Konfigurationsoptionen anzuzeigen.

Blatt „SQL-Datenbank erstellen“ im Azure-Portal

In der folgenden Abbildung wird das Portalblatt gezeigt, auf dem Sie die Datenbankoptionen konfigurieren können. Dort ist zu sehen, dass die Dienstebene „Universell“ und der Computetarif „Bereitgestellt“ ausgewählt sind. Der Computetarif „Bereitgestellt“ impliziert, dass die Computeressourcen vorab zugewiesen und für die Anzahl der konfigurierten virtuellen Kerne auf Stundenbasis abgerechnet werden. Die andere Option „Serverlos“ wurde bereits erläutert. Diese wird sekundengenau für die Anzahl der genutzten virtuellen Kerne abgerechnet.

Ausgewählte Dienstebenen im Azure-Portal

Bereitstellen einer Azure SQL-Datenbank-Instanz über PowerShell/die CLI

Datenbanken können ferner über Azure PowerShell oder die Azure CLI bereitgestellt werden. Der folgende Codeausschnitt zeigt ein PowerShell-Beispiel, in dem eine neue Ressourcengruppe erstellt und ein Administrator namens „SqlAdmin“ definiert wird sowie ein neuer Server, eine neue Datenbank und eine neue Firewallregel erstellt werden.

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

Instanzen von Azure SQL-Datenbank können, wie unten dargestellt, ebenfalls über die Azure CLI erstellt werden:

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

Bereitstellen einer Azure SQL-Datenbank-Instanz mithilfe von Azure Resource Manager-Vorlagen

Eine weitere Methode für die Bereitstellung von Ressourcen ist, wie bereits erwähnt, die Verwendung einer Azure Resource Manager-Vorlage. Eine Resource Manager-Vorlage bietet Ihnen die höchstmögliche Kontrolle über Ihre Ressourcen. Außerdem hostet Microsoft ein GitHub-Repository namens „Azure-Quickstart-Templates“ mit Azure Resource Manager-Vorlagen, auf die Sie in Ihren Bereitstellungen verweisen können. Nachstehend finden Sie ein PowerShell-Beispiel für die Bereitstellung einer GitHub-basierten Vorlage:

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