Als u één database wilt maken in Azure Portal, begint deze quickstart op de Azure SQL-pagina.
Browse naar de pagina SQL-implementatieoptie selecteren.
Laat onder SQL-databases de optie Resourcetype ingesteld op Eén database en selecteer Maken.
Selecteer op het tabblad Basisbeginselen van het formulier SQL Database maken onder Projectdetails het Azure-abonnement dat u wilt gebruiken.
Selecteer voor Resourcegroep de optie Nieuwe maken, voer myResourceGroup in en selecteer OK.
Voer voor databasenaam demo in.
Voor Server selecteert u Nieuwe maken. Vul het formulier Nieuwe server in met de volgende waarden:
- Servernaam: Voer mysqlserver in en voeg enkele tekens toe voor uniekheid. We kunnen geen exacte servernaam geven die moet worden gebruikt omdat servernamen globaal uniek moeten zijn voor alle servers in Azure en niet alleen uniek moeten zijn binnen een abonnement. Voer iets in als mysqlserver12345 en de portal laat u weten of deze beschikbaar is of niet.
- Aanmelding van de serverbeheerder: voer azureuser in.
- Wachtwoord: voer een wachtwoord in dat voldoet aan de vereisten. Voer deze opnieuw in het vak Wachtwoord bevestigen in.
- Locatie: Selecteer een locatie in de vervolgkeuzelijst.
- Toestaan dat Azure-services toegang krijgen tot deze server: selecteer deze optie om toegang tot digest-opslag in te schakelen.
Selecteer OK.
Laat de instelling voor Wilt u een elastische SQL-pool gebruiken? ongewijzigd op Nee.
Selecteer onder Computing en opslag de optie Database configureren.
Deze quickstart maakt gebruik van een serverloze database, dus selecteer Serverloos en vervolgens Toepassen.
Selecteer op het tabblad Netwerken voor Verbindingsmethode de optie Openbaar eindpunt.
Stel voor Firewallregels de optie Huidig IP-adres van client toevoegen in op Ja. Laat de instelling voor Toestaan dat Azure-services en -resources toegang tot deze server krijgen ongewijzigd op Nee.
Selecteer Volgende: Beveiliging onderaan de pagina.
Selecteer op het tabblad Beveiliging in de sectie Grootboek de optie Grootboek configureren.
Schakel in het deelvenster Grootboek configureren in de sectie Grootboek het selectievakje Inschakelen voor alle toekomstige tabellen in deze database in. Deze instelling zorgt ervoor dat alle toekomstige tabellen in de database grootboektabellen zijn. Daarom tonen alle gegevens in de database bewijs van manipulatie. Standaard worden nieuwe tabellen gemaakt als updatable grootboektabellen, zelfs als u niet opgeeft LEDGER = ON
in CREATE TABLE. U kunt deze optie ook uitgeschakeld laten. Vervolgens moet u grootboekfunctionaliteit per tabel inschakelen wanneer u nieuwe tabellen maakt met behulp van Transact-SQL.
In de sectie Digest Storage wordt automatische digest-opslag inschakelen automatisch geselecteerd. Vervolgens wordt er een nieuw Azure Storage-account en een nieuwe container gemaakt waarin uw digests worden opgeslagen.
Selecteer Toepassen.
Selecteer Controleren en maken onderaan de pagina.
Selecteer Maken op de pagina Beoordelen en maken nadat u deze hebt bekeken.
U maakt een resourcegroep, een logische databaseserver, één grootboekdatabase en configureert uploaden van grootboeksamenvattingen met behulp van de Azure CLI.
Azure Cloud Shell starten
Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.
Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook openen in een afzonderlijk browsertabblad door naar https://shell.azure.com te gaan. Klik op Kopiëren om de codeblokken te kopiëren, plak deze in Cloud Shell en druk vervolgens op Enter om de code uit te voeren.
Parameterwaarden instellen
De volgende waarden worden gebruikt in opeenvolgende opdrachten om de database en de vereiste resources te maken. Servernamen en namen van opslagaccounts moeten wereldwijd uniek zijn in azure, zodat de $RANDOM functie wordt gebruikt om de servernaam en de naam van het opslagaccount te maken.
De resourcenaam moet uniek zijn in uw abonnement. Vervang door <your resource group name>
een unieke naam en <your subscription ID>
door uw abonnements-id.
Vervang de 0.0.0.0-waarden in het IP-adresbereik zodat deze overeenkomt met uw specifieke omgeving.
Vervang westeurope door de naam van uw favoriete Azure-regio.
resourceGroupName="<your resource group name>"
location="westeurope"
serverName="mysqlserver"-$RANDOM
databaseName="myLedgerDatabase"
storageAccountName="mystorage"$RANDOM
subscription="<your subscription ID>"
adminLogin=azureuser
adminPassword=Azure1234567!
serverResourceId="/subscriptions/$subscription/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName"
# The ip address range that you want to allow to access your server
startIP=0.0.0.0
endIP=0.0.0.0
# Set variables for your digest storage location
storageAccountName="mystorage"$RANDOM
storageAccountURL1="https://"
storageAccountURL3=".blob.core.windows.net"
storageAccountURL=$storageAccountURL1$storageAccountName$storageAccountURL3
storageAccountResourceId="/subscriptions/$subscription/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
# Show resource names
echo "Resource group name is" $resourceGroupName
echo "Server name is" $serverName
echo "Database name is" $databaseName
echo "Storage account name is" $storageAccountName
Een brongroep maken
Een resourcegroep maken met de opdracht az group create. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
az group create --name $resourceGroupName --location $location
Een server maken met een beheerde identiteit
Maak een server met de opdracht az sql server create. Met de opdracht wordt de server gemaakt waaraan een beheerde identiteit is toegewezen.
az sql server create \
--name $serverName \
--resource-group $resourceGroupName \
--location $location \
--admin-user $adminLogin \
--admin-password $adminPassword \
--assign-identity
Met deze opdracht wordt de id opgeslagen in een variabele, die later wordt gebruikt om de servermachtigingen te verlenen voor het uploaden van grootboeksamenvattingen.
# Retrieves the assigned identity to be used when granting the server access to the storage account
principalId=`az sql server show \
--name $serverName \
--resource-group $resourceGroupName \
--query identity.principalId \
--output tsv`
Maak een firewallregel met de opdracht az sql server firewall-rule create.
az sql server firewall-rule create \
--resource-group $resourceGroupName \
--server $serverName \
-n AllowYourIp \
--start-ip-address $startIP \
--end-ip-address $endIP
Een individuele grootboekdatabase maken
Maak een grootboekdatabase met de opdracht az sql db create . Met de volgende opdracht maakt u een serverloze database waarvoor grootboek is ingeschakeld.
az sql db create \
--resource-group $resourceGroupName \
--server $serverName \
--name $databaseName \
--edition GeneralPurpose \
--family Gen5 \
--capacity 2 \
--compute-model Serverless \
--ledger-on
Een opslagaccount maken
Maak een opslagaccount om grootboeksamenvatten op te slaan met de opdracht az storage account create .
az storage account create \
--name $storageAccountName \
--resource-group $resourceGroupName \
--location $location \
--sku Standard_GRS \
--kind StorageV2
De servermachtigingen verlenen om grootboeksamenvattingen te schrijven
Wijs de beheerde identiteit van de server toe aan de rol Inzender voor opslagblobgegevens met de opdracht az role assignment create . Hierdoor beschikt de SQL-server over de juiste machtigingen voor het publiceren van databasesamenvattingen naar het opslagaccount.
az role assignment create \
--assignee-object-id $principalId \
--assignee-principal-type "ServicePrincipal" \
--role "Storage Blob Data Contributor" \
--scope $storageAccountResourceId
Uploads voor databasesamenvating inschakelen
Werk de database bij om grootboeksamenvatten te uploaden naar het opslagaccount met behulp van de opdracht az sql db ledger-digest-uploads.
az sql db ledger-digest-uploads enable \
--name $databaseName \
--resource-group $resourceGroupName \
--server $serverName \
--endpoint $storageAccountURL
Als u de samenvattingen wilt beschermen tegen verwijderen of bijwerken, wordt u aangeraden een bewaarbeleid op basis van tijd te configureren voor de container sqldbledgerdigests met behulp van de opdrachten az storage container immutability-policy create en az storage container immutability-policy lock-opdrachten. Het beleid moet schrijfbewerkingen voor beveiligde toevoeg-blobs toestaan. Dit zorgt ervoor dat de databaseserver blokken met nieuwe digests kan toevoegen aan een bestaande blob, terwijl het verwijderen of bijwerken van de digests is uitgeschakeld voor de opgegeven onveranderbaarheidsperiode.
Belangrijk
In het onderstaande voorbeeld wordt de onveranderbaarheidsperiodewaarde van 1 dag gebruikt. In een productieomgeving moet u een veel grotere waarde gebruiken.
Notitie
Zodra de database wordt geüpload naar het opslagaccount, kunt u het opslagaccount pas verwijderen nadat het onveranderbaarheidsbeleid is verlopen. Het instellen van het onveranderbaarheidsbeleid kan worden overgeslagen als u van plan bent om resources onmiddellijk na deze quickstart op te schonen.
Zie Beleid voor onveranderbaarheid voor containers configureren voor meer informatie over bewaarbeleid op basis van tijd voor containers.
az storage container immutability-policy create \
--resource-group $resourceGroupName \
--account-name $storageAccountName \
--container-name sqldbledgerdigests \
--period 1 \
--allow-protected-append-writes true
# Retrieves the etag value of the policy to be used when the policy is locked
etag=`az storage container immutability-policy show \
--account-name $storageAccountName \
--container-name sqldbledgerdigests \
--query etag \
--output tsv`
etag="${etag/$'\r'/}"
az storage container immutability-policy lock \
--resource-group $resourceGroupName \
--account-name $storageAccountName \
--container-name sqldbledgerdigests \
--if-match $etag
U maakt een resourcegroep, een logische databaseserver, één grootboekdatabase en configureert uploaden van grootboeksamenvattingen met Behulp van Windows PowerShell.
Azure Cloud Shell starten
Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.
Als u Cloud Shell wilt openen, selecteert u Proberen in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook openen in een afzonderlijk browsertabblad door naar https://shell.azure.com te gaan. Klik op Kopiëren om de codeblokken te kopiëren, plak deze in Cloud Shell en druk vervolgens op Enter om de code uit te voeren.
Parameterwaarden instellen
De volgende waarden worden gebruikt in opeenvolgende opdrachten om de database en de vereiste resources te maken. Servernamen en opslagaccountnamen moeten wereldwijd uniek zijn in alle Azure, zodat de Get-Random-cmdlet wordt gebruikt om de servernaam en de naam van het opslagaccount te maken.
De resourcenaam moet uniek zijn in uw abonnement. Vervang <your resource group name>
door een unieke naam.
Vervang de 0.0.0.0-waarden in het IP-adresbereik zodat deze overeenkomt met uw specifieke omgeving.
Vervang westeurope door de naam van uw favoriete Azure-regio.
# Set variables for your server and database
$resourceGroupName = "<your resource group name>"
$location = "westeurope"
$serverName = "mysqlserver-$(Get-Random)"
$databaseName = "myLedgerDatabase"
$storageAccountName = "mystorage$(Get-Random)"
# The ip address range that you want to allow to access your server
$startIP = "0.0.0.0"
$endIP = "0.0.0.0"
# Show resource names
Write-host "Resource group name is" $resourceGroupName
Write-host "Server name is" $serverName
Write-host "Storage account name is" $storageAccountName
Een brongroep maken
Maak een Azure-resourcegroep met behulp van de opdracht New-AzResourceGroup. Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.
Write-host "Creating resource group..."
$resourceGroup = New-AzResourceGroup `
-Name $resourceGroupName `
-Location $location
$resourceGroup
Een server maken
Maak een server met de cmdlet New-AzSqlServer.
Met de cmdlet wordt de server gemaakt waaraan een beheerde identiteit is toegewezen, die u later nodig hebt om de servermachtigingen te verlenen voor het uploaden van grootboeksamenvattingen.
Voer desgevraagd de gebruikersnaam en het wachtwoord van uw SQL-beheerder in.
Write-host "Creating primary server..."
$server = New-AzSqlServer `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-Location $location `
-AssignIdentity `
-SqlAdministratorCredentials (Get-Credential)
$server
Een firewallregel maken
Maak een serverfirewallregel met de cmdlet New-AzSqlServerFirewallRule.
Write-host "Configuring server firewall rule..."
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-FirewallRuleName "AllowedIPs" -StartIpAddress $startIP -EndIpAddress $endIP
$serverFirewallRule
Een individuele grootboekdatabase maken
Maak een individuele grootboekdatabase met de cmdlet New-AzSqlDatabase .
In het onderstaande voorbeeld wordt een serverloze database gemaakt.
Write-host "Creating a gen5 2 vCore serverless ledger database..."
$database = New-AzSqlDatabase -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Edition GeneralPurpose `
-ComputeModel Serverless `
-ComputeGeneration Gen5 `
-VCore 2 `
-MinimumCapacity 2 `
-EnableLedger
$database
Een opslagaccount maken
Maak een opslagaccount voor het opslaan van grootboek-digests met de cmdlet New-AzStorageAccount .
Write-host "Creating a storage account for ledger digests..."
$storage = New-AzStorageAccount -ResourceGroupName $resourceGroupName `
-Name $storageAccountName `
-Location $location `
-SkuName Standard_RAGRS `
-Kind StorageV2 `
-AccessTier Hot
$storage
De servermachtigingen verlenen om grootboeksamenvattingen te schrijven
Wijs de beheerde identiteit van de server toe aan de rol Inzender voor opslagblobgegevens met de cmdlet New-AzRoleAssignment . Hierdoor beschikt de SQL-server over de juiste machtigingen voor het publiceren van databasesamenvattingen naar het opslagaccount.
Write-host "Granting the server access to the storage account..."
$assignment = New-AzRoleAssignment `
-ObjectId $server.Identity.PrincipalId `
-RoleDefinitionName "Storage Blob Data Contributor" `
-ResourceGroupName $resourceGroupName `
-ResourceType "Microsoft.Storage/storageAccounts" `
-ResourceName $storageAccountName
$assignment
Uploads voor databasesamenvating inschakelen
Werk de database bij om grootboeksamenvatten te uploaden naar het opslagaccount met behulp van de cmdlet Enable-AzSqlDatabaseLedgerDigestUpload . De databaseserver maakt een nieuwe container met de naam sqldbledgerdigests binnen het opslagaccount en begint met het schrijven van grootboek-digests naar de container.
Write-host "Enabling ledger digest upload..."
$ledgerDigestUploadConfig = Enable-AzSqlDatabaseLedgerDigestUpload `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Endpoint $storage.PrimaryEndpoints.Blob
$ledgerDigestUploadConfig
Als u de samenvattingen wilt beschermen tegen verwijderen of bijwerken, wordt u aangeraden een bewaarbeleid op basis van tijd te configureren voor de container sqldbledgerdigests met behulp van de cmdlets Set-AzRmStorageContainerImmutabilityPolicy en Lock-AzRmStorageContainerImmutabilityPolicy . Het beleid moet schrijfbewerkingen voor beveiligde toevoeg-blobs toestaan. Dit zorgt ervoor dat de databaseserver blokken met nieuwe digests kan toevoegen aan een bestaande blob, terwijl het verwijderen of bijwerken van de digests is uitgeschakeld voor de opgegeven onveranderbaarheidsperiode.
Belangrijk
In het onderstaande voorbeeld wordt de onveranderbaarheidsperiodewaarde van 1 dag gebruikt. In een productieomgeving moet u een veel grotere waarde gebruiken.
Notitie
U kunt de container of het opslagaccount niet verwijderen tijdens de opgegeven onveranderbaarheidsperiode.
Zie Beleid voor onveranderbaarheid voor containers configureren voor meer informatie over bewaarbeleid op basis van tijd voor containers.
Write-host "Configuring a time-based retention policy..."
$immutabilityPerdiod = 1
$containerName = "sqldbledgerdigests"
$policy = Set-AzRmStorageContainerImmutabilityPolicy `
-ResourceGroupName $resourceGroupName `
-StorageAccountName $storageAccountName `
-ContainerName $containerName `
-AllowProtectedAppendWrite $true `
-ImmutabilityPeriod $immutabilityPerdiod
Lock-AzRmStorageContainerImmutabilityPolicy `
-ResourceGroupName $resourceGroupName `
-StorageAccountName $storageAccountName `
-ContainerName $containerName `
-Etag $policy.Etag
Behoud de resourcegroep, server en individuele database voor de volgende stappen. U leert hoe u de grootboekfunctie van uw database gebruikt met verschillende methoden.
Wanneer u klaar bent met het gebruik van deze resources, verwijdert u de resourcegroep die u hebt gemaakt. Met deze actie worden ook de server en individuele database erin en het opslagaccount verwijderd.
Verbinding maken met uw database en er query's op uitvoeren met behulp van verschillende hulpprogramma's en talen: