Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för: SQL Server 2022 (16.x) och senare versioner
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_nameverifierar 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_ledgeri transaktionsregistret. - Kontrollerar om den omberäknade tabellhashen matchar värdet som lagras i kolumnen table_hashes i
sys.database_ledgerfö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.