Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Sql Server 2022 (16.x) és újabb verziók
Azure SQL Database
Felügyelt Azure SQL-példány
A frissíthető főkönyvtáblák olyan rendszerverzióval rendelkező táblák, amelyeken a felhasználók frissítéseket és törléseket hajthatnak végre, ugyanakkor illetéktelen beavatkozás elleni védelmet is biztosítanak. Frissítések vagy törlések esetén a sor minden korábbi verziója megmarad egy másodlagos táblában, más néven az előzménytáblában. Az előzménytábla az frissíthető főkönyvtábla sémáját tükrözi. Egy sor frissítésekor a sor legújabb verziója a főkönyvtáblában marad, míg a korábbi verziót a rendszer beszúrja az előzménytáblába, transzparensen az alkalmazásba.
Mind az frissíthető főkönyvtáblák, mind az időbeli táblák rendszerverziójú táblák, amelyekhez az adatbázismotor rögzíti a másodlagos előzménytáblák előzménysorainak verzióit. Bármelyik technológia egyedi előnyöket biztosít. A frissíthető napló táblák az aktuális és az előzményadatok manipulációját is nyilvánvalóvá teszik. A temporális táblák támogatják az adott időpontban tárolt adatok lekérdezését ahelyett, hogy csak az aktuális pillanatban helyes adatokat kérdezik le. Mindkét technológiát együtt használhatja, ha olyan táblákat hoz létre, amelyek mind frissíthető főkönyvtáblák, mind időbeli táblák.
Létrehozhat egy frissíthető főkönyvtáblát a LEDGER = ONCREATE DATABASE (Transact-SQL) utasítás argumentumának megadásával.
Jótanács
LEDGER = ON nem kötelező, ha frissíthető főkönyvtáblákat hoz létre egy főkönyv-adatbázisban. Alapértelmezés szerint minden tábla egy frissíthető főkönyvtábla egy főkönyv-adatbázisban.
A T-SQL-utasítás argumentumának megadásakor LEDGER elérhető lehetőségekről a CREATE TABLE (Transact-SQL) című témakörben olvashat.
Fontos
A főkönyvtáblák létrehozása után nem állítható vissza olyan táblára, amely nem főkönyvtábla. Ennek eredményeképpen a támadók nem távolíthatják el ideiglenesen a főkönyvi funkciókat a főkönyvtábláról, nem végezhetnek módosításokat, és nem engedélyezhetik újra a főkönyvi funkciót.
Naprakész főkönyvtábla sémája
Az frissíthető főkönyvtábláknak a következő GENERÁLT ALWAYS oszlopokkal kell rendelkezniük, amelyek metaadatokat tartalmaznak, amelyek tartalmazzák, hogy mely tranzakciók módosították a táblát, és hogy a műveletek sorrendje mely sorokat frissítette a tranzakció. Ezek az adatok kriminalisztikai célokra hasznosak az adatok időbeli beszúrásának megértéséhez.
Ha a GENERATED ALWAYS utasításban nem adja meg a főkönyvtábla és a könyvelési előzmények táblájának kötelező oszlopait, a rendszer automatikusan hozzáadja az oszlopokat, és az alábbi alapértelmezett neveket használja. További információkért tekintse meg az frissíthető főkönyvtáblák létrehozására vonatkozó példákat.
| Alapértelmezett oszlopnév | Adattípus | Description |
|---|---|---|
| ledger_start_transaction_id | bigint | A sorverziót létrehozó tranzakció azonosítója |
| ledger_end_transaction_id (főkönyv_vég_tranzakció_azonosító) | bigint | Az a tranzakcióazonosító, amely törölt egy sorverziót |
| ledger_kezdő_sorszám | bigint | Egy sorverziót létrehozó tranzakción belüli művelet sorszáma |
| ledger_vég_sorszám | bigint | A tranzakción belüli művelet sorszáma, amely törölt egy sorverziót |
Előzménytábla
Az előzménytábla automatikusan létrejön egy frissíthető főkönyvtábla létrehozásakor. Az előzménytábla rögzíti a frissíthető főkönyvtáblában lévő frissítések és törlések miatt módosított sorok előzményértékeit. Az előzménytábla sémája a hozzárendelt frissíthető főkönyvtábla sémáját tükrözi.
Frissíthető főkönyvtábla létrehozásakor megadhatja annak a sémának a nevét, amely tartalmazza az előzménytáblát és az előzménytábla nevét, vagy a rendszer létrehozza az előzménytábla nevét, és hozzáadja azt a főkönyvtáblával megegyező sémához. A rendszer által létrehozott névvel rendelkező előzménytáblákat névtelen előzménytábláknak nevezzük. A névtelen előzménytáblák elnevezési konvenciójának neve <schema>.<updatableledgertablename>. <GUID>MSSQL_LedgerHistoryFor_.
Főkönyv nézet
Minden frissíthető főkönyvtáblához a rendszer automatikusan létrehoz egy nézetet, az úgynevezett ledger nézetet. A főkönyv nézet az frissíthető főkönyvtábla és a hozzá tartozó előzménytáblák összekapcsolása. A főkönyvnézet jelentést készít az összes sormódosításról, amely a frissíthető főkönyvtáblán történt, azáltal hogy az előzménytáblában található előzményadatokat összekapcsolja. Ez a nézet lehetővé teszi a felhasználók, partnereik vagy auditoraik számára az összes előzményművelet elemzését és az esetleges illetéktelen módosítás észlelését. Az egyes sorműveleteket az eljáró tranzakció azonosítója kíséri, valamint azt is, hogy a művelet egy DELETE vagy egy INSERT. A felhasználók további információt kaphatnak a tranzakció végrehajtásának időpontjáról, valamint a végrehajtást végrehajtó felhasználó identitásáról, és összevethetik azokat a tranzakció által végrehajtott egyéb műveletekkel.
Ha például egy banki forgatókönyv tranzakciós előzményeit szeretné nyomon követni, a főkönyvi nézet a tranzakciók időbeli sorrendjét mutatja. A főkönyvnézet használatával nem kell függetlenül néznie a frissíthető főkönyvtáblát és az előzménytáblát, vagy saját nézetet kell létrehoznia ehhez.
Példa a főkönyvnézet használatára: Frissíthető főkönyvtáblák létrehozása és használata.
A főkönyvnézet sémája az frissíthető főkönyvben és az előzménytáblában definiált oszlopokat tükrözi, de a GENERÁLT MINDIG oszlopok eltérnek az frissíthető főkönyv és az előzménytáblák oszlopaitól.
Ledger view schema
Megjegyzés:
A főkönyvnézet oszlopnevei testre szabhatók a tábla létrehozásakor a <ledger_view_option>CREATE TABLE (Transact-SQL) utasítás paraméterével. További információkért tekintse meg a főkönyvi nézet beállításait és a CREATE TABLE (Transact-SQL) megfelelő példáit.
| Alapértelmezett oszlopnév | Adattípus | Description |
|---|---|---|
| főkönyvi_tranzakció_azonosító | bigint | A sorverziót létrehozó vagy törölt tranzakció azonosítója. |
| főkönyv_sorszám | bigint | Egy sorszintű művelet sorszáma a tábla tranzakcióján belül. |
| főkönyv_művelettípus | tinyint | Tartalmazza 1 (INSERT) vagy 2 (DELETE). Ha egy sort beszúr a főkönyvtáblába, ez új sort eredményez a főkönyvi nézetben, amely ebben az oszlopban 1-t tartalmaz. Ha töröl egy sort a főkönyvtáblából, egy új sor jön létre a főkönyvi nézetben, amely tartalmazza a(z) 2-t ebben az oszlopban. A főkönyvi tábla egy sorának frissítése két új sort hoz létre a főkönyv nézetben. Az egyik sor ebben az oszlopban tartalmazza a 2 (DELETE), míg a másik sor tartalmazza a 1 (INSERT). |
| ledger_művelet_típus_leírás | nvarchar(128) | Tartalmazza INSERT vagy DELETE. További információkért lásd az előző sort. |