Vytvoření izolované databáze na webu Azure Portal:
Přejděte na stránku s možností Vybrat nasazení SQL.
V části Databáze SQL ponechte typ prostředku nastavený na Jednoúčelová databáze a vyberte Vytvořit.
Na kartě Základy formuláře Vytvořit databázi SQL v části Podrobnosti projektu vyberte předplatné Azure, které chcete použít.
V části Skupina prostředků vyberte Vytvořit novou, zadejte myResourceGroup a vyberte OK.
Jako název databáze zadejte ukázku.
V části Server vyberte Vytvořit nový. Vyplňte formulář Nový server následujícími hodnotami:
- Název serveru: Zadejte mysqlserver a přidejte několik znaků pro jedinečnost. Nemůžeme zadat přesný název serveru, který se má použít, protože názvy serverů musí být globálně jedinečné pro všechny servery v Azure, ne jenom jedinečné v rámci předplatného. Zadejte něco jako mysqlserver12345 a portál vám dá vědět, jestli je dostupný nebo ne.
- Přihlašovací jméno správce serveru: Zadejte azureuser.
- Heslo: Zadejte heslo, které splňuje požadavky. Zadejte ho znovu do pole Potvrdit heslo .
- Umístění: Vyberte umístění z rozevíracího seznamu.
- Povolit službám Azure přístup k tomuto serveru: Tuto možnost vyberte, pokud chcete povolit přístup k úložišti digest.
Vyberte OK.
Ponechte možnost Použít elastický fond SQL nastavený na Ne.
V části Výpočty + úložiště vyberte Konfigurovat databázi.
V tomto rychlém startu se používá bezserverová databáze, takže vyberte Bezserverová databáze a pak vyberte Použít.
Na kartě Sítě vyberte pro metodu připojení veřejný koncový bod.
U pravidel brány firewall nastavte možnost Přidat aktuální IP adresu klienta na hodnotu Ano. Ponechte možnost Povolit službám a prostředkům Azure přístup k tomuto serveru na hodnotu Ne.
Vyberte Další: Zabezpečení v dolní části stránky.
Na kartě Zabezpečení v části Hlavní kniha vyberte možnost Konfigurovat registr.
V podokně Konfigurovat registr v části Hlavní kniha zaškrtněte políčko Povolit pro všechny budoucí tabulky v této databázi. Toto nastavení zajistí, že všechny budoucí tabulky v databázi budou tabulky registru. Z tohoto důvodu budou všechna data v databázi zobrazovat všechny důkazy o manipulaci. Ve výchozím nastavení se nové tabulky vytvoří jako aktualizovatelné tabulky registru, i když v příkazu CREATE TABLE nezadáte.LEDGER = ON
Tuto možnost můžete také ponechat nevybranou. Při vytváření nových tabulek pomocí jazyka Transact-SQL pak budete muset povolit funkci registru pro jednotlivé tabulky.
V části Úložiště digest je automaticky vybráno povolit automatické ukládání hodnot hash. Pak se vytvoří nový účet služby Azure Storage a kontejner, ve kterém se ukládají vaše přehledy.
Vyberte Použít.
Vyberte Zkontrolovat a vytvořit v dolní části stránky.
Na stránce Zkontrolovat a vytvořit vyberte po kontrole možnost Vytvořit.
Vytvoříte skupinu prostředků, logický databázový server, jednoúčelovou databázi a nakonfigurujete nahrávání hodnot hash registru pomocí Azure CLI.
Spuštění služby Azure Cloud Shell
Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít k provedení kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem.
Pokud chcete otevřít Cloud Shell, vyberte Vyzkoušet v pravém horním rohu bloku kódu. Cloud Shell můžete spustit také na samostatné kartě prohlížeče na adrese https://shell.azure.com. Výběrem možnosti Kopírovat zkopírujte bloky kódu, vložte ho do Cloud Shellu a stisknutím klávesy Enter ho spusťte.
Nastavení hodnot parametrů
Následující hodnoty se používají v následujících příkazech k vytvoření databáze a požadovaných prostředků. Názvy serverů a názvy účtů úložiště musí být globálně jedinečné ve všech Azure, aby se k vytvoření názvu serveru a názvu účtu úložiště použila funkce $RANDOM.
Název prostředku musí být ve vašem předplatném jedinečný. Nahraďte <your resource group name>
jedinečným názvem a <your subscription ID>
ID vašeho předplatného.
Nahraďte hodnoty 0.0.0.0 v rozsahu IP adres tak, aby odpovídaly vašemu konkrétnímu prostředí.
Nahraďte westeurope upřednostňovaným názvem oblasti Azure.
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
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
az group create --name $resourceGroupName --location $location
Vytvoření serveru se spravovanou identitou
Vytvořte server pomocí příkazu az sql server create . Příkaz vytvoří server s přiřazenou spravovanou identitou.
az sql server create \
--name $serverName \
--resource-group $resourceGroupName \
--location $location \
--admin-user $adminLogin \
--admin-password $adminPassword \
--assign-identity
Tento příkaz uloží ID do proměnné, která se později použije k udělení oprávnění serveru k nahrání přehledů registru.
# 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`
Vytvořte pravidlo brány firewall pomocí příkazu 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
Vytvoření jednoúčelové databáze registru
Vytvořte databázi registru pomocí příkazu az sql db create . Následující příkaz vytvoří bezserverovou databázi s povolenou hlavní databází.
az sql db create \
--resource-group $resourceGroupName \
--server $serverName \
--name $databaseName \
--edition GeneralPurpose \
--family Gen5 \
--capacity 2 \
--compute-model Serverless \
--ledger-on
Vytvoření účtu úložiště
Vytvořte účet úložiště pro ukládání přehledů registru pomocí příkazu az storage account create .
az storage account create \
--name $storageAccountName \
--resource-group $resourceGroupName \
--location $location \
--sku Standard_GRS \
--kind StorageV2
Udělení oprávnění serveru k zápisu přehledů registru
Pomocí příkazu az role assignment create přiřaďte spravovanou identitu serveru k roli Přispěvatel dat objektů blob služby Storage. Tím serveru SQL poskytnete příslušná oprávnění k publikování přehledů databáze do účtu úložiště.
az role assignment create \
--assignee-object-id $principalId \
--assignee-principal-type "ServicePrincipal" \
--role "Storage Blob Data Contributor" \
--scope $storageAccountResourceId
Povolení nahrání hash databáze
Aktualizujte databázi tak, aby začala nahrávat hodnoty hash registru do účtu úložiště pomocí příkazu az sql db ledger-digest-uploads enable .
az sql db ledger-digest-uploads enable \
--name $databaseName \
--resource-group $resourceGroupName \
--server $serverName \
--endpoint $storageAccountURL
Pokud chcete chránit hodnoty hash před odstraněním nebo aktualizací, doporučujeme nakonfigurovat zásady uchovávání informací na základě času pro kontejner sqldbledgerdigests pomocí příkazu az storage container immutability-policy create a az storage container immutability-policy lock příkazů. Zásady musí umožňovat zápisy chráněných doplňovacích objektů blob. Tím zajistíte, že databázový server může do existujícího objektu blob přidat bloky obsahující nové hodnoty hash, zatímco odstranění nebo aktualizace digestů je pro zadané období neměnnosti zakázané.
Důležité
Následující příklad používá hodnotu období neměnnosti 1 den. V produkčním prostředí byste měli použít mnohem větší hodnotu.
Poznámka:
Jakmile se do účtu úložiště začnou nahrávat hodnoty hash databáze, nebudete moct účet úložiště odstranit, dokud nevyprší platnost zásad neměnnosti. Nastavení zásad neměnnosti je možné přeskočit, pokud plánujete vyčistit prostředky ihned po tomto rychlém startu.
Další informace o zásadách uchovávání informací na základě času pro kontejnery najdete v tématu Konfigurace zásad neměnnosti pro kontejnery.
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
Vytvoříte skupinu prostředků, logický databázový server, jednoúčelovou databázi a nakonfigurujete nahrávání hodnot hash registru pomocí Windows PowerShellu.
Spuštění služby Azure Cloud Shell
Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít k provedení kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem.
Pokud chcete otevřít Cloud Shell, vyberte Vyzkoušet v pravém horním rohu bloku kódu. Cloud Shell můžete spustit také na samostatné kartě prohlížeče na adrese https://shell.azure.com. Výběrem možnosti Kopírovat zkopírujte bloky kódu, vložte ho do Cloud Shellu a stisknutím klávesy Enter ho spusťte.
Nastavení hodnot parametrů
Následující hodnoty se používají v následujících příkazech k vytvoření databáze a požadovaných prostředků. Názvy serverů a názvy účtů úložiště musí být globálně jedinečné ve všech Azure, aby se rutina Get-Random použila k vytvoření názvu serveru a názvu účtu úložiště.
Název prostředku musí být ve vašem předplatném jedinečný. Nahraďte <your resource group name>
jedinečným názvem.
Nahraďte hodnoty 0.0.0.0 v rozsahu IP adres tak, aby odpovídaly vašemu konkrétnímu prostředí.
Nahraďte westeurope upřednostňovaným názvem oblasti Azure.
# 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
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků Azure pomocí rutiny New-AzResourceGroup. Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
Write-host "Creating resource group..."
$resourceGroup = New-AzResourceGroup `
-Name $resourceGroupName `
-Location $location
$resourceGroup
Vytvoření serveru
Vytvořte server pomocí rutiny New-AzSqlServer .
Rutina vytvoří server s přiřazenou spravovanou identitou, kterou budete později muset udělit oprávnění serveru k nahrání přehledů registru.
Po zobrazení výzvy zadejte uživatelské jméno a heslo správce SQL.
Write-host "Creating primary server..."
$server = New-AzSqlServer `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-Location $location `
-AssignIdentity `
-SqlAdministratorCredentials (Get-Credential)
$server
Vytvoření pravidla brány firewall
Vytvořte pravidlo brány firewall serveru pomocí rutiny New-AzSqlServerFirewallRule .
Write-host "Configuring server firewall rule..."
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-FirewallRuleName "AllowedIPs" -StartIpAddress $startIP -EndIpAddress $endIP
$serverFirewallRule
Vytvoření jednoúčelové databáze registru
Vytvořte jednoúčelovou databázi pomocí rutiny New-AzSqlDatabase .
Následující příklad vytvoří bezserverovou databázi.
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
Vytvoření účtu úložiště
Vytvořte účet úložiště pro ukládání přehledů registru pomocí rutiny 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
Udělení oprávnění serveru k zápisu přehledů registru
Přiřaďte spravovanou identitu serveru k roli Přispěvatel dat objektů blob úložiště pomocí rutiny New-AzRoleAssignment . Tím serveru SQL poskytnete příslušná oprávnění k publikování přehledů databáze do účtu úložiště.
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
Povolení nahrání hash databáze
Pomocí rutiny Enable-AzSqlDatabaseLedgerDigestUpload aktualizujte databázi tak, aby začala nahrávat hodnoty digest registru do účtu úložiště. Databázový server vytvoří nový kontejner s názvem sqldbledgerdigests v rámci účtu úložiště a začne do kontejneru zapisovat přehledy registru.
Write-host "Enabling ledger digest upload..."
$ledgerDigestUploadConfig = Enable-AzSqlDatabaseLedgerDigestUpload `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Endpoint $storage.PrimaryEndpoints.Blob
$ledgerDigestUploadConfig
Pokud chcete chránit hodnoty hash před odstraněním nebo aktualizací, doporučujeme nakonfigurovat zásady uchovávání informací na základě času v kontejneru sqldbledgerdigests pomocí rutin Set-AzRmStorageContainerImmutabilityPolicy a Lock-AzRmStorageContainerImmutabilityPolicy . Zásady musí umožňovat zápisy chráněných doplňovacích objektů blob. Tím zajistíte, že databázový server může do existujícího objektu blob přidat bloky obsahující nové hodnoty hash, zatímco odstranění nebo aktualizace digestů je pro zadané období neměnnosti zakázané.
Důležité
Následující příklad používá hodnotu období neměnnosti 1 den. V produkčním prostředí byste měli použít mnohem větší hodnotu.
Poznámka:
Během zadané doby neměnnosti nebudete moct odstranit kontejner ani účet úložiště.
Další informace o zásadách uchovávání informací na základě času pro kontejnery najdete v tématu Konfigurace zásad neměnnosti pro kontejnery.
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
Pro další kroky ponechte skupinu prostředků, server a jednoúčelovou databázi. Naučíte se používat funkci registru databáze s různými metodami.
Po dokončení používání těchto prostředků odstraňte skupinu prostředků, kterou jste vytvořili. Tato akce také odstraní server a izolovanou databázi a účet úložiště.