Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
Verifierar databasregistret och tabellligorna. För varje rad i vyn sys.database_ledger
, den lagrade proceduren:
- Beräknar om ett värde som lagras i kolumnen previous_block_hash på raden.
- Kontrollerar om det omberäknade värdet matchar det värde som för närvarande lagras i kolumnen previous_block_hash.
- Om den angivna listan med sammandrag innehåller en sammandrag för transaktionsregistret som raden representerar verifierar den att det omberäknade värdet matchar hashen i sammandraget.
- Om ett transaktionsregistertabellnamn anges med argumentet
table_name
verifierar den lagrade proceduren en tabellhash för den angivna tabellen, om den finns i kolumnen table_hashes isys.database_ledger
. Annars verifierar den alla tabell-hashar som finns i kolumnen table_hashes isys.database_ledger
, förutom tabell-hashar för icke-befintliga (borttagna) tabeller. När du verifierar en tabellhash för en transaktionsregistertabell, den lagrade proceduren:- Söker igenom historiktabellen i transaktionsregistret för att beräkna om tabellhashen, vilket är en hash för alla rader som uppdateras av transaktionen som representeras av den aktuella raden i
sys.database_ledger
i transaktionsregistret. - Kontrollerar om den omberäknade tabellhashen matchar värdet som lagras i kolumnen table_hashes i
sys.database_ledger
för den angivna transaktionsregistret.
- Söker igenom historiktabellen i transaktionsregistret för att beräkna om tabellhashen, vilket är en hash för alla rader som uppdateras av transaktionen som representeras av den aktuella raden i
Dessutom verifierar den lagrade proceduren att alla icke-grupperade index överensstämmer med den angivna transaktionsregistret. Om ingen transaktionsregistertabell har angetts verifierar den alla icke-illustrerade index för varje befintlig transaktionsregistertabell som refereras i kolumnen table_hashes i någon rad i sys.database_ledger
.
Mer information om databasregister finns i Ledger.
Transact-SQL syntaxkonventioner
Syntax
sp_verify_database_ledger
[ @digests = ] 'digests'
[ , [ @table_name = ] 'table_name' ]
Argument
Viktig
Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.
[ @digests = ] "sammanfattar"
Ett JSON-dokument som innehåller en lista över transaktionssammandrag, som vart och ett har hämtats genom att fråga sys.database_ledger_latest_digest
vyn. JSON-dokumentet måste innehålla minst en sammanfattning.
[ @table_name = ] "table_name"
Namnet på den tabell som du vill verifiera.
Returnera kodvärden
0
(lyckades) eller 1
(fel).
Resultatuppsättning
En rad med en kolumn som heter last_verified_block_id
.
Behörigheter
Kräver behörigheten VIEW LEDGER CONTENT.