Delen via


Alleen-toevoegbare grootboektabellen

Van toepassing op: SQL Server 2022 (16.x) en latere versies Van Azure SQL DatabaseAzure SQL Managed Instance

Grootboektabellen met alleen toevoeggegevens staan alleen INSERT bewerkingen toe in uw tabellen, waardoor bevoegde gebruikers, zoals databasebeheerders, geen gegevens kunnen wijzigen via traditionele bewerkingen voor gegevensmanipulatie . Grootboektabellen met alleen toevoeggegevens zijn ideaal voor systemen die geen records bijwerken of verwijderen, zoals gebeurtenis- en beheersystemen voor beveiliging en blockchainsystemen waar gegevens moeten worden gerepliceerd van de blockchain naar een database. Omdat er geen UPDATE of DELETE bewerkingen op een alleen-aanvultabel zijn, is er geen bijbehorende historietabel nodig, zoals bij updatable grootboek-tabellen.

Diagram met architectuur van grootboektabellen.

U kunt een grootboektabel met alleen toevoegen maken door het argument op te geven in de LEDGER = ONinstructie CREATE TABLE (Transact-SQL) en de APPEND_ONLY = ON optie op te geven.

Belangrijk

Nadat een tabel is gemaakt als grootboektabel, kan deze niet worden teruggezet naar een tabel die geen grootboekfunctionaliteit heeft. Als gevolg hiervan kan een aanvaller de mogelijkheden van grootboek niet tijdelijk verwijderen, wijzigingen aanbrengen in de tabel en vervolgens de functionaliteit van het grootboek opnieuw inschakelen.

Tabelschema voor grootboek met alleen toevoeggegevens

Een tabel met alleen toevoegbewerkingen moet de volgende GEGENEREERDE ALWAYS-kolommen bevatten die metagegevens bevatten die noteren welke transacties wijzigingen hebben aangebracht in de tabel en de volgorde van bewerkingen waarmee rijen zijn bijgewerkt door de transactie. Wanneer u een grootboektabel met alleen toevoeggegevens maakt, GENERATED ALWAYS worden kolommen gemaakt in de grootboektabel. Deze gegevens zijn handig voor forensische doeleinden bij het begrijpen hoe gegevens in de loop van de tijd zijn ingevoegd.

Als u de definities van de GENERATED ALWAYS kolommen in de instructie CREATE TABLE niet opgeeft, worden deze automatisch door het systeem toegevoegd met behulp van de volgende standaardnamen.

Standaardkolomnaam Gegevenstype Description
grootboek_start_transactie_id Bigint De ID van de transactie die een rijversie heeft gemaakt
ledger_start_sequence_number Bigint Het volgnummer van een bewerking binnen een transactie die een rijversie heeft gemaakt

Grootboekweergave

Voor elke grootboektabel met alleen toevoeggegevens genereert het systeem automatisch een weergave, de zogenaamde grootboekweergave. In de grootboekweergave worden alle rijinvoegingen gerapporteerd die op de tabel hebben plaatsgevonden. De grootboekweergave is voornamelijk handig voor bijwerkbare grootboektabellen, in plaats van uitsluitend toevoegbare grootboektabellen, omdat toevoegbare grootboektabellen geen UPDATE- of DELETE-mogelijkheden hebben. De grootboekweergave voor grootboektabellen die alleen kunnen worden toegevoegd, is beschikbaar voor consistentie tussen grootboektabellen die kunnen worden bijgewerkt en alleen toevoegbare grootboektabellen.

Schema voor grootboekweergave

Opmerking

De kolomnamen van het grootboekweergave kunnen worden aangepast wanneer u de tabel maakt met behulp van de <ledger_view_option> parameter met de instructie CREATE TABLE (Transact-SQL). Zie opties voor grootboekweergave en de bijbehorende voorbeelden in CREATE TABLE (Transact-SQL)voor meer informatie.

Standaardkolomnaam Gegevenstype Description
ledger_transaction_id Bigint De ID van de transactie die een rijversie heeft gecreƫerd of verwijderd.
grootboekvolgnummer Bigint Het volgnummer van een bewerking op rijniveau binnen de transactie in de tabel.
grootboek_bewerkingstype tinyint Bevat 1 (INSERT) of 2 (DELETE). Wanneer u een rij invoegt in de grootboektabel, wordt er een nieuwe rij gegenereerd in de grootboekweergave die 1 in deze kolom bevat. Als u een rij uit de grootboektabel verwijdert, wordt er een nieuwe rij gegenereerd in de grootboekweergave die zich in deze kolom bevindt 2 . Het bijwerken van een rij in de grootboektabel produceert twee nieuwe rijen in de grootboekweergave. De ene rij bevat (2) en de andere rij bevat 1 (INSERT) in deze kolom. Een DELETE mag niet worden uitgevoerd op een grootboektabel met alleen toevoeggegevens.
type_beschrijving_grootboektransactie nvarchar(128) Bevat INSERT of DELETE. Zie de voorgaande rij voor meer informatie.