U hebt een actief Azure-abonnement nodig. Maak een gratis account aan als u er nog geen hebt, .
Een individuele database maken in Azure Portal:
Blader naar de pagina Selecteer SQL-implementatieopties.
Laat onder SQL-databases de resource-type ingesteld op individuele database, en selecteer Create.
Selecteer op het tabblad Basisinformatie van het formulier SQL Database maken, onder Projectdetails, het Azure-abonnement dat u wilt gebruiken.
Voor resourcegroepselecteert u Nieuw maken, voert u myResourceGroupin en selecteert u 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 opgeven die moet worden gebruikt, omdat servernamen globaal uniek moeten zijn voor alle servers in Azure, niet alleen uniek binnen een abonnement. Voer iets in zoals mysqlserver12345en de portal laat u weten of deze beschikbaar is of niet.
-
Server admin login: Enter azureuser.
-
wachtwoord: voer een wachtwoord in dat voldoet aan de vereisten. Voer het opnieuw in in het vak Wachtwoord bevestigen.
-
Locatie: Selecteer een locatie in de vervolgkeuzelijst.
-
Azure-services toegang geven tot deze server: selecteer deze optie om toegang tot digest-opslag in te schakelen.
Kies OK.
Laat Wilt u de elastische SQL-pool gebruiken ingesteld op Geen.
Selecteer onder Compute en opslagde optie Database configureren.
In deze quickstart wordt een serverloze database gebruikt, dus selecteer Serverlessen selecteer vervolgens Toepassen.
Selecteer op het tabblad Netwerken voor connectiviteitsmethodeOpenbaar eindpunt.
Voor firewallregelsstelt u Het huidige client-IP-adres toevoegen in op Ja. Laat Azure-services en -resources toegang geven tot deze server ingesteld op Geen.
Selecteer Volgende: Beveiliging onder aan de pagina.
Selecteer op het tabblad Security in de sectie Grootboek de optie Grootboek configureren.
In het deelvenster Grootboek configureren, in de sectie Grootboek, selecteer het selectievakje Inschakelen voor alle toekomstige tabellen in deze database. 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 grootboektabellen die kunnen worden bijgewerkt, zelfs als u geen LEDGER = ON
opgeeft 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 de optie Toepassen.
Klik op Controleren en maken onderaan de pagina.
Op de pagina Beoordelen en maken, selecteer na uw beoordeling maken.
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 die u kunt gebruiken om de stappen in dit artikel uit te voeren. Veelgebruikte Azure-hulpprogramma's zijn vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.
Als u Cloud Shell wilt openen, selecteert u Probeer het in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook starten in een afzonderlijk browsertabblad door naar https://shell.azure.comte gaan. Selecteer Kopieer om de codeblokken te kopiëren, plak deze in Cloud Shell en druk op Enter- om deze uit te voeren.
Parameterwaarden instellen
De volgende waarden worden gebruikt in de volgende 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 <your resource group name>
door een unieke naam en <your subscription ID>
door uw abonnements-id.
Vervang de waarden 0.0.0.0 in het IP-adresbereik zodat deze overeenkomen met uw specifieke omgeving.
Vervang westeurope- door de naam van uw azure-regio van uw voorkeur.
resourceGroupName="<your resource group name>"
location="westeurope"
serverName="mysqlserver"-$RANDOM
databaseName="myLedgerDatabase"
storageAccountName="mystorage"$RANDOM
subscription="<your subscription ID>"
adminLogin=azureuser
adminPassword=<password>
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
Maak een resourcegroep 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 aan 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 aan om grootboekoverzichten 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 Storage Blob Data Contributor-rol 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 databasesamenvatting inschakelen
Werk de database bij om grootboekoverzichten te uploaden naar het opslagaccount met behulp van het commando az sql db ledger-digest-uploads enable.
az sql db ledger-digest-uploads enable \
--name $databaseName \
--resource-group $resourceGroupName \
--server $serverName \
--endpoint $storageAccountURL
Als u wilt voorkomen dat de samenvattingen worden verwijderd of bijgewerkt, wordt u aangeraden een bewaarbeleid op basis van tijd te configureren voor de sqldbledgerdigests container met behulp van de az storage container immutability-policy create en az storage container immutability-policy lock opdrachten. Het beleid moet schrijfbewerkingen voor beveiligde append 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 er wordt begonnen met het uploaden van databaseoverzichten naar het opslagaccount, kunt u het opslagaccount niet verwijderen totdat 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 Onveranderbaarheidsbeleid configureren voor containersvoor 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 die u kunt gebruiken om de stappen in dit artikel uit te voeren. Veelgebruikte Azure-hulpprogramma's zijn vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account.
Als u Cloud Shell wilt openen, selecteert u Probeer het in de rechterbovenhoek van een codeblok. U kunt Cloud Shell ook starten in een afzonderlijk browsertabblad door naar https://shell.azure.comte gaan. Selecteer Kopieer om de codeblokken te kopiëren, plak deze in Cloud Shell en druk op Enter- om deze uit te voeren.
Parameterwaarden instellen
De volgende waarden worden gebruikt in de volgende opdrachten om de database en de vereiste resources te maken. Servernamen en namen van opslagaccounts moeten wereldwijd uniek zijn in 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 waarden 0.0.0.0 in het IP-adresbereik zodat deze overeenkomen met uw specifieke omgeving.
Vervang westeurope- door de naam van uw azure-regio van uw voorkeur.
# 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 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 Storage Blob Data Contributor 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 database-digests 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 wilt voorkomen dat de samenvattingen worden verwijderd of bijgewerkt, wordt u aangeraden een bewaarbeleid op basis van tijd te configureren voor de sqldbledgerdigests container met behulp van de Set-AzRmStorageContainerImmutabilityPolicy en Lock-AzRmStorageContainerImmutabilityPolicy cmdlets. Het beleid moet schrijfbewerkingen voor beveiligde append-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 Onveranderbaarheidsbeleid configureren voor containersvoor meer informatie over bewaarbeleid op basis van tijd voor containers.
Write-host "Configuring a time-based retention policy..."
$immutabilityPeriod = 1
$containerName = "sqldbledgerdigests"
$policy = Set-AzRmStorageContainerImmutabilityPolicy `
-ResourceGroupName $resourceGroupName `
-StorageAccountName $storageAccountName `
-ContainerName $containerName `
-AllowProtectedAppendWrite $true `
-ImmutabilityPeriod $immutabilityPeriod
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.