Om du vill skapa en enkel databas i Azure-portalen börjar den här snabbstarten på Azure SQL-sidan.
Bläddra till alternativsidan Välj SQL-distribution.
Under SQL-databaser lämnar du Resurstyp inställd på Enskild databas och väljer Skapa.
På fliken Grundläggande i formuläret Skapa SQL Database går du till Projektinformation och väljer den Azure-prenumeration som du vill använda.
För Resursgrupp väljer du Skapa ny, anger myResourceGroup och väljer OK.
Som Databasnamn anger du demo.
För Server väljer du Skapa ny. Fyll i formuläret Ny server med följande värden:
- Servernamn: Ange mysqlserver och lägg till några tecken för unikhet. Vi kan inte ange ett exakt servernamn att använda eftersom servernamn måste vara globalt unika för alla servrar i Azure, inte bara unika i en prenumeration. Ange något i stil med mysqlserver12345 och portalen meddelar dig om den är tillgänglig eller inte.
- Inloggning för serveradministratör: Ange azureuser.
- Lösenord: Ange ett lösenord som uppfyller kraven. Ange det igen i rutan Bekräfta lösenord .
- Plats: Välj en plats i listrutan.
- Tillåt att Azure-tjänster får åtkomst till den här servern: Välj det här alternativet för att aktivera åtkomst till sammanfattad lagring.
Välj OK.
Lämna Vill använda elastisk SQL-pool inställd på Nej.
Under Beräkning + lagring väljer du Konfigurera databas.
Den här snabbstarten använder en serverlös databas, så välj Serverlös och välj sedan Använd.
På fliken Nätverk väljer du Offentlig slutpunkt för Anslutningsmetod.
För Brandväggsregler anger du Lägg till aktuell klient-IP-adress till Ja. Låt Tillåt Att Azure-tjänster och resurser får åtkomst till den här servern inställt på Nej.
Välj Nästa: Säkerhet längst ned på sidan.
På fliken Säkerhet går du till avsnittet Transaktionsregister och väljer alternativet Konfigurera transaktionsregister .
I fönstret Konfigurera transaktionsregister går du till avsnittet Transaktionsregister och markerar kryssrutan Aktivera för alla framtida tabeller i den här databasen . Den här inställningen säkerställer att alla framtida tabeller i databasen blir transaktionsregistertabeller. Därför visar alla data i databasen alla tecken på manipulering. Som standard skapas nya tabeller som uppdaterade transaktionsregistertabeller, även om du inte anger LEDGER = ON
i CREATE TABLE. Du kan också lämna det här alternativet avmarkerat. Du måste sedan aktivera transaktionsregisterfunktioner per tabell när du skapar nya tabeller med hjälp av Transact-SQL.
I avsnittet Sammanfattad lagring väljs Aktivera automatisk sammandragslagring automatiskt. Sedan skapas ett nytt Azure Storage-konto och en container där dina sammandrag lagras.
Välj tillämpa.
Välj Granska + skapa längst ned på sidan.
På sidan Granska + skapa väljer du Skapa när du har granskat den.
Du skapar en resursgrupp, en logisk databasserver, en enskild transaktionsregisterdatabas och konfigurerar uppladdning av transaktionsregistersammandrag med Hjälp av Azure CLI.
Starta Azure Cloud Shell
Azure Cloud Shell är ett interaktivt gränssnitt som du kan använda för att utföra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.
Öppna Cloud Shell genom att välja Prova i det övre högra hörnet i ett kodblock. Du kan också starta Cloud Shell i en separat webbläsarflik genom att gå till https://shell.azure.com. Välj Kopiera för att kopiera kodblocken, klistra in dem i Cloud Shell och tryck på Retur för att köra det.
Ange parametervärden
Följande värden används i efterföljande kommandon för att skapa databasen och nödvändiga resurser. Servernamn och lagringskontonamn måste vara globalt unika i hela Azure, så funktionen $RANDOM används för att skapa servernamnet och lagringskontots namn.
Resursnamnet måste vara unikt i din prenumeration. Ersätt <your resource group name>
med ett unikt namn och <your subscription ID>
med ditt prenumerations-ID.
Ersätt värdena 0.0.0.0 i ip-adressintervallet för att matcha din specifika miljö.
Ersätt westeurope med det azure-regionnamn du föredrar.
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
Skapa en resursgrupp
Skapa en resursgrupp med kommandot az group create. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.
az group create --name $resourceGroupName --location $location
Skapa en server med en hanterad identitet
Skapa en server med kommandot az sql server create . Kommandot skapar servern med en tilldelad hanterad identitet.
az sql server create \
--name $serverName \
--resource-group $resourceGroupName \
--location $location \
--admin-user $adminLogin \
--admin-password $adminPassword \
--assign-identity
Det här kommandot lagrar ID:t i en variabel, som senare kommer att användas för att ge servern behörighet att ladda upp transaktionsregistersammandrag.
# 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`
Skapa en brandväggsregel med kommandot 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
Skapa en enskild transaktionsregisterdatabas
Skapa en transaktionsregisterdatabas med kommandot az sql db create . Följande kommando skapar en serverlös databas med transaktionsregistret aktiverat.
az sql db create \
--resource-group $resourceGroupName \
--server $serverName \
--name $databaseName \
--edition GeneralPurpose \
--family Gen5 \
--capacity 2 \
--compute-model Serverless \
--ledger-on
Skapa ett lagringskonto
Skapa ett lagringskonto för att lagra transaktionsregistersammandrag med kommandot az storage account create .
az storage account create \
--name $storageAccountName \
--resource-group $resourceGroupName \
--location $location \
--sku Standard_GRS \
--kind StorageV2
Ge servern behörighet att skriva transaktionsregistersammandrag
Tilldela serverns hanterade identitet till rollen Storage Blob Data Contributor med kommandot az role assignment create . Detta ger SQL-servern rätt behörighet att publicera databassammandrag till lagringskontot.
az role assignment create \
--assignee-object-id $principalId \
--assignee-principal-type "ServicePrincipal" \
--role "Storage Blob Data Contributor" \
--scope $storageAccountResourceId
Aktivera databassammandragsuppladdningar
Uppdatera databasen för att börja ladda upp transaktionsregistersammandrag till lagringskontot med hjälp av kommandot az sql db ledger-digest-uploads enable .
az sql db ledger-digest-uploads enable \
--name $databaseName \
--resource-group $resourceGroupName \
--server $serverName \
--endpoint $storageAccountURL
För att skydda sammandrag från att tas bort eller uppdateras rekommenderar vi att du konfigurerar en tidsbaserad kvarhållningsprincip för containern sqldbledgerdigests med hjälp av az storage container immutability-policy create och az storage container immutability-policy lock-kommandon . Principen måste tillåta skrivning av skyddade tilläggsblobar. Detta säkerställer att databasservern kan lägga till block som innehåller nya sammandrag till en befintlig blob, medan borttagning eller uppdatering av sammandrag inaktiveras under den angivna oföränderlighetsperioden.
Viktigt!
I exemplet nedan används värdet för oföränderlighetsperiod på 1 dag. I en produktionsmiljö bör du använda ett mycket större värde.
Kommentar
När databassammandrag börjar laddas upp till lagringskontot kan du inte ta bort lagringskontot förrän oföränderlighetsprincipen upphör att gälla. Du kan hoppas över att ange principen för oföränderlighet om du planerar att rensa resurser omedelbart efter den här snabbstarten.
Mer information om tidsbaserad kvarhållningsprincip för containrar finns i Konfigurera oföränderlighetsprinciper för containrar.
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
Du skapar en resursgrupp, en logisk databasserver, en enskild transaktionsregisterdatabas och konfigurerar uppladdning av transaktionsregistersammandrag med Windows PowerShell.
Starta Azure Cloud Shell
Azure Cloud Shell är ett interaktivt gränssnitt som du kan använda för att utföra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.
Öppna Cloud Shell genom att välja Prova i det övre högra hörnet i ett kodblock. Du kan också starta Cloud Shell i en separat webbläsarflik genom att gå till https://shell.azure.com. Välj Kopiera för att kopiera kodblocken, klistra in dem i Cloud Shell och tryck på Retur för att köra det.
Ange parametervärden
Följande värden används i efterföljande kommandon för att skapa databasen och nödvändiga resurser. Servernamn och lagringskontonamn måste vara globalt unika i hela Azure, så cmdleten Get-Random används för att skapa servernamnet och lagringskontonamnet.
Resursnamnet måste vara unikt i din prenumeration. Ersätt <your resource group name>
med ett unikt namn.
Ersätt värdena 0.0.0.0 i ip-adressintervallet för att matcha din specifika miljö.
Ersätt westeurope med det azure-regionnamn du föredrar.
# 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
Skapa en resursgrupp
Skapa en Azure-resursgrupp med New-AzResourceGroup. En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.
Write-host "Creating resource group..."
$resourceGroup = New-AzResourceGroup `
-Name $resourceGroupName `
-Location $location
$resourceGroup
Skapa en server
Skapa en server med cmdleten New-AzSqlServer .
Cmdleten skapar servern med en tilldelad hanterad identitet, som du behöver senare för att ge servern behörighet att ladda upp transaktionsregistersammandrag.
När du uppmanas till det anger du ditt användarnamn och lösenord för SQL-administratören.
Write-host "Creating primary server..."
$server = New-AzSqlServer `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-Location $location `
-AssignIdentity `
-SqlAdministratorCredentials (Get-Credential)
$server
Skapa en brandväggsregel
Skapa en brandväggsregel för servern med cmdleten New-AzSqlServerFirewallRule .
Write-host "Configuring server firewall rule..."
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-FirewallRuleName "AllowedIPs" -StartIpAddress $startIP -EndIpAddress $endIP
$serverFirewallRule
Skapa en enskild transaktionsregisterdatabas
Skapa en enskild transaktionsregisterdatabas med cmdleten New-AzSqlDatabase .
I exemplet nedan skapas en serverlös databas.
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
Skapa ett lagringskonto
Skapa ett lagringskonto för att lagra transaktionsregistersammandrag med cmdleten 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
Ge servern behörighet att skriva transaktionsregistersammandrag
Tilldela serverns hanterade identitet till rollen Storage Blob Data Contributor med cmdleten New-AzRoleAssignment . Detta ger SQL-servern rätt behörighet att publicera databassammandrag till lagringskontot.
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
Aktivera databassammandragsuppladdningar
Uppdatera databasen för att börja ladda upp transaktionsregistersammandrag till lagringskontot med hjälp av cmdleten Enable-AzSqlDatabaseLedgerDigestUpload . Databasservern skapar en ny container med namnet sqldbledgerdigests i lagringskontot och börjar skriva transaktionsregistersammandrag till containern.
Write-host "Enabling ledger digest upload..."
$ledgerDigestUploadConfig = Enable-AzSqlDatabaseLedgerDigestUpload `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Endpoint $storage.PrimaryEndpoints.Blob
$ledgerDigestUploadConfig
För att skydda sammandrag från att tas bort eller uppdateras rekommenderar vi att du konfigurerar en tidsbaserad kvarhållningsprincip för containern sqldbledgerdigests med hjälp av cmdletarna Set-AzRmStorageContainerImmutabilityPolicy och Lock-AzRmStorageContainerImmutabilityPolicy . Principen måste tillåta skrivning av skyddade tilläggsblobar. Detta säkerställer att databasservern kan lägga till block som innehåller nya sammandrag till en befintlig blob, medan borttagning eller uppdatering av sammandrag inaktiveras under den angivna oföränderlighetsperioden.
Viktigt!
I exemplet nedan används värdet för oföränderlighetsperiod på 1 dag. I en produktionsmiljö bör du använda ett mycket större värde.
Kommentar
Du kommer inte att kunna ta bort containern eller lagringskontot under den angivna oföränderlighetsperioden.
Mer information om tidsbaserad kvarhållningsprincip för containrar finns i Konfigurera oföränderlighetsprinciper för containrar.
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
Behåll resursgruppen, servern och databasen för nästa steg. Du får lära dig hur du använder transaktionsregisterfunktionen i databasen med olika metoder.
När du är klar med att använda dessa resurser tar du bort den resursgrupp som du skapade. Den här åtgärden tar också bort servern och den enskilda databasen i den och lagringskontot.