Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2022 (16.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
Aktualizovatelné tabulky registru jsou tabulky se systémovou verzí, na kterých můžou uživatelé provádět aktualizace a odstraňování a zároveň poskytují funkce pro manipulaci s důkazy. Když dojde k aktualizacím nebo odstranění, zachovají se všechny starší verze řádku v sekundární tabulce, označované jako tabulka historie. Tabulka historie zrcadlí schéma aktualizovatelné tabulky registru. Při aktualizaci řádku zůstane nejnovější verze řádku v tabulce registru, zatímco její starší verze se vloží do tabulky historie systémem transparentně do aplikace.
Aktualizovatelné tabulky registru i dočasné tabulky jsou tabulky se systémovou verzí, pro které databázový stroj zachycuje historické verze řádků v sekundárních tabulkách historie. Obě technologie poskytují jedinečné výhody. Aktualizovatelné tabulky registru zviditelní aktuální i historická data. Dočasné tabulky podporují dotazování na data uložená v libovolném časovém okamžiku místo pouze dat, která jsou v aktuálním okamžiku v čase správná. Obě technologie můžete použít společně vytvořením tabulek, které jsou aktualizovatelnými tabulkami registru i dočasnými tabulkami.
Aktualizovatelnou tabulku registru můžete vytvořit zadáním argumentu LEDGER = ON v příkazu CREATE DATABASE (Transact-SQL).
Návod
LEDGER = ON je volitelný při vytváření aktualizovatelných tabulek registru v databázi registru. Ve výchozím nastavení je každá tabulka aktualizovatelnou tabulkou registru v databázi registru.
Informace o možnostech dostupných při zadávání argumentu LEDGER v příkazu T-SQL naleznete v tématu CREATE TABLE (Transact-SQL).
Důležité
Po vytvoření tabulky registru se nedá vrátit k tabulce, která není tabulkou registru. V důsledku toho útočník nemůže dočasně odebrat možnosti registru v tabulce registru, provádět změny a pak znovu zapnout funkce registru.
Aktualizovatelné schéma tabulky registru
Aktualizovatelná tabulka registru musí obsahovat následující sloupce GENERATED ALWAYS , které obsahují metadata, které transakce provedly změny v tabulce a pořadí operací, podle kterých byly řádky aktualizovány transakcí. Tato data jsou užitečná pro forenzní účely při pochopení toho, jak byla data vložena v průběhu času.
Pokud v příkazu GENERATED ALWAYS nezadáte požadované sloupce tabulky registru a tabulky historie registru, systém automaticky přidá sloupce a použije následující výchozí názvy. Další informace najdete v příkladech vytvoření aktualizovatelné tabulky registru.
| Výchozí název sloupce | Datový typ | Description |
|---|---|---|
| ledger_start_transaction_id | bigint | ID transakce, která vytvořila verzi řádku |
| identifikátor_konce_transakce_účetní_knihy | bigint | ID transakce, která smazala verzi řádku |
| pořadové číslo počátku účetní knihy (ledger_start_sequence_number) | bigint | Pořadové číslo operace, která v rámci transakce vytvořila verzi řádku. |
| sekvenční_číslo_na_konci_účetní_knihy | bigint | Pořadové číslo operace v rámci transakce, která odstranila verzi řádku |
Tabulka historie
Tabulka historie se automaticky vytvoří při vytvoření aktualizovatelné tabulky registru. Tabulka historie zachycuje historické hodnoty řádků, které se změnily kvůli aktualizacím a odstranění v aktualizovatelné tabulce registru. Schéma historické tabulky odráží schéma aktualizovatelné tabulky hlavní knihy, s níž je spojena.
Když vytvoříte aktualizovatelnou tabulku registru, můžete buď zadat název schématu, který bude obsahovat tabulku historie, a název tabulky historie, nebo máte systém vygenerovaný název tabulky historie a přidat ho do stejného schématu jako tabulka registru. Tabulky historie se systémem generovanými názvy se nazývají anonymní tabulky historie. Zásady vytváření názvů pro tabulku anonymní historie jsou <schema>.<updatableledgertablename>. <GUID>MSSQL_LedgerHistoryFor_.
Zobrazení hlavní knihy
Pro každou aktualizovatelnou tabulku registru systém automaticky vygeneruje zobrazení označované jako zobrazení registru. Zobrazení účetní knihy je spojením aktualizovatelné tabulky registru a přidružené tabulky historie. Zobrazení registru hlásí všechny úpravy řádků, ke kterým došlo v aktualizovatelné tabulce registru, spojením historických dat v tabulce historie. Toto zobrazení umožňuje uživatelům, jejich partnerům nebo auditorům analyzovat všechny historické operace a zjišťovat potenciální manipulaci. Každá operace řádku je doprovázena ID odpovídající transakce spolu s tím, zda operace byla typu DELETE nebo typu INSERT. Uživatelé mohou načíst další informace o době, kdy byla transakce provedena, a identitu uživatele, který ji spustil, a korelovat s jinými operacemi prováděnými touto transakcí.
Pokud například chcete sledovat historii transakcí pro bankovní scénář, zobrazení registru poskytuje kroniku transakcí v průběhu času. Pomocí zobrazení hlavní knihy nemusíte nezávisle zobrazit aktualizovatelné tabulky registru a tabulky historie nebo vytvořit vlastní zobrazení, abyste to mohli udělat.
Příklad použití zobrazení registru naleznete v tématu Vytvoření a použití aktualizovatelných tabulek registru.
Schéma zobrazení registru zrcadlí sloupce definované v aktualizovatelné registru a tabulce historie, ale sloupce GENERATED ALWAYS se liší od sloupců aktualizovatelných registrů a historie.
Schéma zobrazení registru
Poznámka:
Názvy sloupců zobrazení registru lze přizpůsobit při vytváření tabulky pomocí <ledger_view_option> parametru s příkazem CREATE TABLE (Transact-SQL). Další informace naleznete v tématu možnosti zobrazení registru a odpovídající příklady v CREATE TABLE (Transact-SQL).
| Výchozí název sloupce | Datový typ | Description |
|---|---|---|
| ledger_transaction_id | bigint | ID transakce, která vytvořila nebo odstranila verzi řádky. |
| číslo posloupnosti hlavní knihy | bigint | Pořadové číslo operace na úrovni řádku v rámci transakce v tabulce. |
| typ_operace_v_knihách | tinyint | Obsahuje 1 (INSERT) nebo 2 (DELETE). Vložení řádku do tabulky účetní knihy vytvoří nový řádek v zobrazení účetní knihy, který obsahuje 1 v tomto sloupci. Odstranění řádku z tabulky registru vytvoří nový řádek v zobrazení registru, který obsahuje v tomto sloupci 2. Aktualizace řádku v tabulce registru vytvoří v zobrazení registru dva nové řádky. Jeden řádek obsahuje 2 (DELETE) a druhý řádek obsahuje 1 (INSERT) v tomto sloupci. |
| popis_typu_operace_v_knize | nvarchar(128) | Obsahuje INSERT nebo DELETE. Další informace najdete v předchozím řádku. |