Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server 2022 (16.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
Neste artigo, você verificará a integridade dos dados em suas tabelas contábeis. Se você configurou o armazenamento de resumo automático em seu banco de dados, siga a seção T-SQL usando armazenamento de resumo automático . Caso contrário, siga o T-SQL usando uma seção digest gerada manualmente .
Pré-requisitos
- Tenha uma assinatura ativa do Azure se estiver usando o Banco de Dados SQL do Azure ou a Instância Gerenciada SQL do Azure. Se não tiver uma subscrição, crie uma conta gratuita.
- Crie e use tabelas contábeis atualizáveis ou crie e use tabelas contábeis somente para acréscimos.
- SQL Server Management Studio.
- A opção de banco de dados ALLOW_SNAPSHOT_ISOLATION deve ser habilitada no banco de dados antes que você possa executar os procedimentos armazenados de verificação.
Executar a verificação do livro-razão para o banco de dados
Conecte-se ao seu banco de dados usando o SQL Server Management Studio.
Crie uma nova consulta com a seguinte instrução T-SQL:
DECLARE @digest_locations NVARCHAR(MAX) = (SELECT * FROM sys.database_ledger_digest_locations FOR JSON AUTO, INCLUDE_NULL_VALUES);SELECT @digest_locations as digest_locations; BEGIN TRY EXEC sys.sp_verify_database_ledger_from_digest_storage @digest_locations; SELECT 'Ledger verification succeeded.' AS Result; END TRY BEGIN CATCH THROW; END CATCHObservação
O script de verificação também pode ser encontrado no portal do Azure. Abra o portal do Azure e localize o banco de dados que você deseja verificar. Em Segurança, selecione a opção Livro Razão. No painel Contabilidade , selecione </> Verificar banco de dados.
Executa a consulta. Você verá que digest_locations retorna o local atual de onde os resumos do banco de dados estão armazenados e todos os locais anteriores. O resultado retorna o sucesso ou a falha da verificação contábil.
Abra o conjunto de resultados digest_locations para visualizar os locais dos seus resumos. O exemplo a seguir mostra dois locais de armazenamento resumido para esse banco de dados:
indica a localização dos resumos.
last_digest_block_id indica o ID do bloco do último resumo armazenado no local do caminho .
is_current indica se o local no caminho é o atual (verdadeiro) ou anterior (falso).
[ { "path": "https:\/\/digest1.blob.core.windows.net\/sqldbledgerdigests\/janderstestportal2server\/jandersnewdb\/2021-05-20T04:39:47.6570000", "last_digest_block_id": 10016, "is_current": true }, { "path": "https:\/\/jandersneweracl.confidential-ledger.azure.com\/sqldbledgerdigests\/janderstestportal2server\/jandersnewdb\/2021-05-20T04:39:47.6570000", "last_digest_block_id": 1704, "is_current": false } ]
Importante
Ao executar a verificação contábil, inspecione a localização do digest_locations para garantir que os resumos usados na verificação sejam recuperados dos locais esperados. Você quer garantir que um utilizador privilegiado não tenha alterado o local do armazenamento de resumos para um local de armazenamento desprotegido, como o Armazenamento do Azure, sem uma política de imutabilidade configurada e bloqueada.
A verificação retorna a seguinte mensagem na janela Resultados .
Se não houve adulteração em seu banco de dados, a mensagem é:
Ledger verification successfulSe houve adulteração no banco de dados, o seguinte erro aparecerá na janela Mensagens :
Failed to execute query. Error: The hash of block xxxx in the database ledger doesn't match the hash provided in the digest for this block.