Para criar um único banco de dados no portal do Azure, este início rápido começa na página SQL do Azure.
Navegue até a página de opção Selecionar Implantação SQL.
Em Bancos de dados SQL, deixe Tipo de recurso definido como Banco de dados único e selecione Criar.
Na guia Noções básicas do formulário Criar Banco de Dados SQL, em Detalhes do projeto, selecione a assinatura do Azure que você deseja usar.
Para Grupo de recursos, selecione Criar novo, insira myResourceGroup e selecione OK.
Em Nome do banco de dados, insira demo.
Em Servidor, selecione Criar novo. Preencha o formulário Novo servidor com os seguintes valores:
- Nome do servidor: Digite mysqlserver e adicione alguns caracteres para exclusividade. Não podemos fornecer um nome de servidor exato para usar porque os nomes de servidor devem ser globalmente exclusivos para todos os servidores no Azure, não apenas exclusivos dentro de uma assinatura. Digite algo como mysqlserver12345, e o portal permite que você saiba se está disponível ou não.
- Login de administrador do servidor: insira azureuser.
- Senha: insira uma senha que atenda aos requisitos. Introduza-o novamente na caixa Confirmar palavra-passe .
- Local: selecione um local na lista suspensa.
- Permitir que os serviços do Azure acessem este servidor: selecione esta opção para habilitar o acesso ao armazenamento resumido.
Selecione OK.
Deixe Deseja usar o pool elástico SQL definido como Não.
Em Computação + armazenamento, selecione Configurar banco de dados.
Este início rápido usa um banco de dados sem servidor, portanto, selecione Serverless e, em seguida, selecione Apply.
Na guia Rede, para Método de conectividade, selecione Ponto de extremidade público.
Para regras de firewall, defina Adicionar endereço IP do cliente atual como Sim. Deixe Permitir que os serviços e recursos do Azure acessem este servidor definido como Não.
Selecione Seguinte: Segurança na parte inferior da página.
Na guia Segurança, na seção Contabilidade, selecione a opção Configurar livro-razão.
No painel Configurar contabilidade, na seção Contabilidade, marque a caixa de seleção Habilitar para todas as tabelas futuras neste banco de dados. Essa configuração garante que todas as tabelas futuras no banco de dados serão tabelas contábeis. Por esta razão, todos os dados na base de dados mostrarão quaisquer indícios de adulteração. Por padrão, novas tabelas serão criadas como tabelas contábeis atualizáveis, mesmo que você não especifique LEDGER = ON
em CREATE TABLE. Você também pode deixar essa opção desmarcada. Em seguida, é necessário habilitar a funcionalidade de razão por tabela ao criar novas tabelas usando o Transact-SQL.
Na seção Armazenamento de resumo, a opção Ativar armazenamento de resumo automático é selecionada automaticamente. Em seguida, uma nova conta de Armazenamento do Azure e um contêiner onde seus resumos são armazenados são criados.
Selecione Aplicar.
Selecione Rever + criar na parte inferior da página.
Na página Rever + criar, depois de rever, selecione Criar.
Você criará um grupo de recursos, um servidor de banco de dados lógico, um único banco de dados contábil e configurará o carregamento de resumos contábeis usando a CLI do Azure.
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.
Para abrir o Cloud Shell, selecione Experimente no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com. Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e pressione Enter para executá-lo.
Definir valores de parâmetros
Os valores a seguir são usados em comandos subsequentes para criar o banco de dados e os recursos necessários. Os nomes de servidor e de conta de armazenamento precisam ser globalmente exclusivos em todo o Azure para que a função $RANDOM seja usada para criar o nome do servidor e o nome da conta de armazenamento.
O nome do recurso deve ser exclusivo na sua assinatura. Substitua <your resource group name>
por um nome exclusivo e <your subscription ID>
pelo seu ID de Subscrição.
Substitua os valores 0.0.0.0 no intervalo de endereços ip para corresponder ao seu ambiente específico.
Substitua westeurope pelo nome da região do Azure preferida.
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
Criar um grupo de recursos
Crie um grupo de recursos com o comando az group create. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos.
az group create --name $resourceGroupName --location $location
Criar um servidor com uma identidade gerenciada
Crie um servidor com o comando az sql server create . O comando cria o servidor com uma identidade gerenciada atribuída.
az sql server create \
--name $serverName \
--resource-group $resourceGroupName \
--location $location \
--admin-user $adminLogin \
--admin-password $adminPassword \
--assign-identity
Este comando armazena o ID em uma variável, que será usada posteriormente para conceder ao servidor permissões para carregar resumos do livro-razão.
# 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`
Crie uma regra de firewall com o comando 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
Criar um único banco de dados contábil
Crie um banco de dados contábil com o comando az sql db create . O comando a seguir cria um banco de dados sem servidor com o livro-razão habilitado.
az sql db create \
--resource-group $resourceGroupName \
--server $serverName \
--name $databaseName \
--edition GeneralPurpose \
--family Gen5 \
--capacity 2 \
--compute-model Serverless \
--ledger-on
Criar uma conta de armazenamento
Crie uma conta de armazenamento para armazenar resumos contábeis com o comando az storage account create .
az storage account create \
--name $storageAccountName \
--resource-group $resourceGroupName \
--location $location \
--sku Standard_GRS \
--kind StorageV2
Conceda ao servidor permissões para escrever resumos contábeis
Atribua a identidade gerenciada do servidor à função de Colaborador de Dados de Blob de Armazenamento com o comando az role assignment create . Isso dá ao servidor SQL as permissões apropriadas para publicar resumos do banco de dados na conta de armazenamento.
az role assignment create \
--assignee-object-id $principalId \
--assignee-principal-type "ServicePrincipal" \
--role "Storage Blob Data Contributor" \
--scope $storageAccountResourceId
Habilitar carregamentos resumidos de banco de dados
Atualize o banco de dados para começar a carregar resumos do razão para a conta de armazenamento usando o comando az sql db ledger-digest-uploads enable .
az sql db ledger-digest-uploads enable \
--name $databaseName \
--resource-group $resourceGroupName \
--server $serverName \
--endpoint $storageAccountURL
Para proteger os resumos de serem excluídos ou atualizados, é recomendável configurar uma política de retenção baseada em tempo no contêiner sqldbledgerdigests usando os comandos az storage container immutability-policy create e az storage container immutability-policy lock. A política deve permitir gravações protegidas de blobs de acréscimo. Isso garante que o servidor de banco de dados possa adicionar blocos contendo novos resumos a um blob existente, enquanto a exclusão ou atualização dos resumos é desabilitada pelo período de imutabilidade especificado.
Importante
O exemplo abaixo usa o valor do período de imutabilidade de 1 dia. Em um ambiente de produção, você deve usar um valor muito maior.
Nota
Quando os resumos do banco de dados começarem a ser carregados na conta de armazenamento, você não poderá excluir a conta de armazenamento até que a política de imutabilidade expire. A definição da política de imutabilidade pode ser ignorada se você planeja limpar recursos imediatamente após este Guia de início rápido.
Para obter mais informações sobre a política de retenção baseada em tempo para contêineres, consulte Configurar políticas de imutabilidade para contêineres.
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
Você criará um grupo de recursos, um servidor de banco de dados lógico, um único banco de dados contábil e configurará o carregamento de resumos contábeis usando o Windows PowerShell.
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.
Para abrir o Cloud Shell, selecione Experimente no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com. Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e pressione Enter para executá-lo.
Definir valores de parâmetros
Os valores a seguir são usados em comandos subsequentes para criar o banco de dados e os recursos necessários. Os nomes de servidor e de conta de armazenamento precisam ser globalmente exclusivos em todo o Azure para que o cmdlet Get-Random seja usado para criar o nome do servidor e o nome da conta de armazenamento.
O nome do recurso deve ser exclusivo na sua assinatura. Substitua <your resource group name>
por um nome exclusivo.
Substitua os valores 0.0.0.0 no intervalo de endereços ip para corresponder ao seu ambiente específico.
Substitua westeurope pelo nome da região do Azure preferida.
# 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
Criar um grupo de recursos
Crie um grupo de recursos do Azure com New-AzResourceGroup. Um grupo de recursos é um contentor lógico no qual os recursos do Azure são implementados e geridos.
Write-host "Creating resource group..."
$resourceGroup = New-AzResourceGroup `
-Name $resourceGroupName `
-Location $location
$resourceGroup
Criar um servidor
Crie um servidor com o cmdlet New-AzSqlServer .
O cmdlet cria o servidor com uma identidade gerenciada atribuída, que você precisará posteriormente para conceder ao servidor permissões para carregar resumos do livro-razão.
Quando solicitado, digite seu nome de usuário de administrador SQL e uma senha.
Write-host "Creating primary server..."
$server = New-AzSqlServer `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-Location $location `
-AssignIdentity `
-SqlAdministratorCredentials (Get-Credential)
$server
Criar uma regra de firewall
Crie uma regra de firewall de servidor com o cmdlet New-AzSqlServerFirewallRule .
Write-host "Configuring server firewall rule..."
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-FirewallRuleName "AllowedIPs" -StartIpAddress $startIP -EndIpAddress $endIP
$serverFirewallRule
Criar um único banco de dados contábil
Crie um único banco de dados contábil com o cmdlet New-AzSqlDatabase .
O exemplo abaixo cria um banco de dados sem servidor.
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
Criar uma conta de armazenamento
Crie uma conta de armazenamento para armazenar resumos contábeis com o 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
Conceda ao servidor permissões para escrever resumos contábeis
Atribua a identidade gerenciada do servidor à função de Colaborador de Dados de Blob de Armazenamento com o cmdlet New-AzRoleAssignment . Isso dá ao servidor SQL as permissões apropriadas para publicar resumos do banco de dados na conta de armazenamento.
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
Habilitar carregamentos resumidos de banco de dados
Atualize o banco de dados para começar a carregar resumos contábeis para a conta de armazenamento, usando o cmdlet Enable-AzSqlDatabaseLedgerDigestUpload . O servidor de banco de dados criará um novo contêiner, chamado sqldbledgerdigests, dentro da conta de armazenamento e começará a gravar resumos de livros contábeis no contêiner.
Write-host "Enabling ledger digest upload..."
$ledgerDigestUploadConfig = Enable-AzSqlDatabaseLedgerDigestUpload `
-ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-Endpoint $storage.PrimaryEndpoints.Blob
$ledgerDigestUploadConfig
Para proteger os resumos de serem excluídos ou atualizados, é recomendável configurar uma política de retenção baseada em tempo no contêiner sqldbledgerdigests usando os cmdlets Set-AzRmStorageContainerImmutabilityPolicy e Lock-AzRmStorageContainerImmutabilityPolicy. A política deve permitir gravações protegidas de blobs de acréscimo. Isso garante que o servidor de banco de dados possa adicionar blocos contendo novos resumos a um blob existente, enquanto a exclusão ou atualização dos resumos é desabilitada pelo período de imutabilidade especificado.
Importante
O exemplo abaixo usa o valor do período de imutabilidade de 1 dia. Em um ambiente de produção, você deve usar um valor muito maior.
Nota
Você não poderá excluir o contêiner ou a conta de armazenamento durante o período de imutabilidade especificado.
Para obter mais informações sobre a política de retenção baseada em tempo para contêineres, consulte Configurar políticas de imutabilidade para contêineres.
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
Mantenha o grupo de recursos, o servidor e o banco de dados único para as próximas etapas. Você aprenderá como usar o recurso de contabilidade do seu banco de dados com diferentes métodos.
Quando terminar de usar esses recursos, exclua o grupo de recursos que você criou. Essa ação também exclui o servidor e o banco de dados único dentro dele, bem como a conta de armazenamento.
Conecte-se e consulte seu banco de dados usando diferentes ferramentas e idiomas: