Megosztás a következőn keresztül:


A főkönyv áttekintése

A következőkre vonatkozik: Sql Server 2022 (16.x) és újabb verziók Azure SQL DatabaseFelügyelt Azure SQL-példány

Az adatbázisrendszerekben tárolt adatok integritása körüli bizalom kialakítása régóta problémát jelent minden olyan szervezet számára, amely pénzügyi, orvosi vagy egyéb bizalmas adatokat kezel. A főkönyv funkció illetéktelen módosításokkal kapcsolatos képességeket biztosít az adatbázisban. Kriptográfiailag tanúsíthatja más feleknek, például a könyvvizsgálóknak vagy más üzleti feleknek, hogy adatait nem módosították.

A Ledger segít megvédeni az adatokat minden támadótól vagy magas jogosultságú felhasználótól, beleértve az adatbázis-rendszergazdákat (DBA-kat), a rendszergazdákat és a felhőbeli rendszergazdákat. A hagyományos főkönyvekhez hasonlóan a funkció megőrzi az előzményadatokat. Ha egy sor frissül az adatbázisban, az előző érték megmarad és védett lesz egy előzménytáblában. A Ledger egy krónikát biztosít az adatbázison végzett összes módosításról az idő függvényében.

A ledger és az előzményadatok kezelése transzparens módon, alkalmazásmódosítások nélkül biztosít védelmet. A funkció relációs formában kezeli az előzményadatokat, hogy támogassa az SQL-lekérdezéseket naplózási, kriminalisztikai és egyéb célokra. Garantálja a titkosítási adatok integritását, miközben fenntartja az SQL-adatbázis teljesítményét, rugalmasságát és teljesítményét.

A főkönyvtábla architektúrájának diagramja.

Használati esetek a főkönyvhöz

Vizsgáljuk meg a főkönyv használatának néhány előnyét.

Naplózások egyszerűsítése

Minden éles rendszer értéke azon alapul, hogy megbízhat a rendszer által fogyasztott és előállított adatokban. Ha egy rosszindulatú felhasználó módosította az adatbázisban lévő adatokat, az katasztrofális következményekkel járhat az adatokra támaszkodó üzleti folyamatokban.

Az adatokba vetett bizalom fenntartásához lehetővé kell tenni a megfelelő biztonsági vezérlőket a lehetséges támadások csökkentéséhez, a biztonsági mentési és visszaállítási eljárásokhoz, valamint az alapos vészhelyreállítási eljárásokhoz. A külső felek által végzett ellenőrzések biztosítják e gyakorlatok életbe lépését.

A naplózási folyamatok rendkívül időigényes tevékenységek. A naplózáshoz helyszíni ellenőrzésre van szükség az olyan implementált eljárásoknál, mint az auditnaplók áttekintése, a hitelesítés vizsgálata és a hozzáférés-vezérlés ellenőrzése. Bár ezek a manuális folyamatok potenciális biztonsági réseket tehetnek elérhetővé, nem tudják igazolni, hogy az adatokat nem módosították rosszindulatúan.

A Ledger biztosítja az adatintegritás titkosítási bizonyítékát az auditorok számára. Ez a bizonyíték segíthet egyszerűsíteni a naplózási folyamatot. A rendszer adatainak integritását illetően nem bírálatot is biztosít.

Több féltől származó üzleti folyamatok

Egyes rendszerekben, például az ellátási lánc felügyeleti rendszereiben több szervezetnek is meg kell osztania egy üzleti folyamat állapotát egymással. Ezek a rendszerek az adatok megosztásának és megbízhatóságának kihívásával küzdenek. Számos szervezet a hagyományos blokkláncokhoz, például az Ethereumhoz vagy a Hyperledger Fabrichez fordul, hogy digitálisan átalakítsa a több féltől származó üzleti folyamatokat.

A blokklánc kiváló megoldás több féltől származó hálózatokhoz, ahol alacsony a megbízhatóság a hálózaton részt vevő felek között. Sok ilyen hálózat alapvetően központosított megoldás, ahol fontos a bizalom, de a teljesen decentralizált infrastruktúra nehézsúlyú megoldás.

A Ledger megoldást kínál ezekhez a hálózatokhoz. A résztvevők ellenőrizhetik a központilag tárolt adatok integritását anélkül, hogy a hálózati konszenzus által a blokklánchálózatban bevezetett összetettségi és teljesítménybeli következményekkel járnak.

Ügyfél siker

Megbízható láncon kívüli tárolás blokklánchoz

Ha több féltől származó üzleti folyamathoz blokklánchálózatra van szükség, a blokklánc adatainak lekérdezése a teljesítmény feláldozása nélkül kihívást jelent.

A probléma megoldásának tipikus mintái az adatok replikálása a blokkláncból egy láncon kívüli tárolóba, például egy adatbázisba. Miután azonban a blokkláncból replikálta az adatokat az adatbázisba, az adatintegritás garantálja a blokkláncajánlat elvesztését. A Ledger adatintegritást biztosít a blokklánchálózatok láncon kívüli tárolásához, ami segít teljes adatmegbízhatóságot biztosítani a teljes rendszerben.

Hogyan működik?

A tranzakció által a főkönyvtáblában módosított sorok kriptográfiai SHA-256 kivonatolással, egy Merkle-fa adatstruktúra segítségével kerülnek kivonatolásra, amely egy gyökérkivonatot hoz létre, ami a tranzakció összes sorát képviseli. Az adatbázis által feldolgozott tranzakciókat ezután SHA-256-tal kivonatolják egy Merkle-fa adatstruktúrában. Az eredmény egy gyökérkivonat, amely egy blokkot alkot. A blokkot ezután SHA-256-tal kivonatolják, a blokk gyökérkivonatát és az előző blokk gyökérkivonatát használva a kivonatfüggvény bemeneteként. Az a hash blokkláncot képez.

Az adatbázis-főkönyv gyökérkivonatai, más néven Adatbázis-kivonatok, tartalmazzák a kriptográfiai kivonatolt tranzakciókat, és az adatbázis állapotát képviselik. Ezek rendszeres időközönként létrehozhatók és tárolhatók az adatbázison kívül illetéktelen hozzáféréssel védett tárolókban, például az azure Blob Storage-ban, amely nem módosítható házirendekkel van konfigurálva, az Azure Confidential Ledger vagy a helyszíni Írás, ha egyszer olvas több (WORM) tárolóeszközt. Az adatbázis-kivonatok később az adatbázis integritásának ellenőrzésére szolgálnak, ha összehasonlítják az kivonat értékét az adatbázisban lévő számított kivonatokkal.

A főkönyv funkció két formában jelenik meg a táblákban:

Mind az frissíthető főkönyvtáblák, mind a csak bővítési lehetőséggel rendelkező főkönyvtáblák manipuláció-nyomok kimutatását és digitális kriminalisztikai lehetőségeket biztosítanak.

Naprakész számlatáblák

Az frissíthető főkönyvtáblák ideálisak olyan alkalmazásmintákhoz, amelyek várhatóan frissítéseket és törléseket adnak ki az adatbázis tábláinak, például a rekordkezelő (SOR) alkalmazásoknak. Az alkalmazás meglévő adatmintáinak nem kell megváltoznia a főkönyv funkcióinak engedélyezéséhez.

Az frissíthető főkönyvtáblák nyomon követik az adatbázis bármely sorának módosításainak előzményeit, amikor frissítéseket vagy törléseket végrehajtó tranzakciók történnek. Az frissíthető főkönyvtáblák olyan rendszerverziójú táblák, amelyek tükrözött sémával rendelkező másik táblára mutató hivatkozást tartalmaznak.

A másik táblát előzménytáblának nevezzük. A rendszer ezt a táblát használja a sor előző verziójának automatikus tárolására minden alkalommal, amikor egy sor frissül vagy törlődik a főkönyvtáblában. Az előzménytábla automatikusan létrejön egy frissíthető főkönyvtábla létrehozásakor.

Az frissíthető főkönyvtáblában és a hozzá tartozó előzménytáblában szereplő értékek az adatbázis értékeinek krónikájaként szolgálnak az idő függvényében. A rendszer által létrehozott főkönyvnézet összekapcsolja az frissíthető főkönyvtáblát és az előzménytáblát, hogy könnyen lekérdezhesse az adatbázis krónikáját.

Az frissíthető főkönyvtáblákról további információt az frissíthető főkönyvtáblák létrehozása és használata című témakörben talál.

Csak hozzáfűzhető naplótáblák

A csak hozzáfűző naplótáblák ideálisak a csak beszúrásos alkalmazásmintákhoz, például a biztonsági információkhoz és az eseménykezelési (SIEM-) alkalmazásokhoz. A csak hozzáfűző naplótáblák API-szinten blokkolják a frissítéseket és a törléseket. Ez a letiltás nagyobb védelmet nyújt a kiemelt felhasználók, például a rendszergazdák és a dbA-k ellen.

Mivel csak beszúrások engedélyezettek a rendszerbe, a csak hozzáfűző főkönyvtáblák nem rendelkeznek megfelelő előzménytáblával, mert nincs rögzítendő előzmény. Az frissíthető főkönyvtáblákhoz hasonlóan a főkönyvnézet is betekintést nyújt a csak hozzáfűző táblába sorokat beszúró tranzakcióba, valamint a beszúrást végrehajtó felhasználóba.

A csak hozzáfűző naplótáblákról további információt a Csak hozzáfűző naplótáblák létrehozása és használata című témakörben talál.

Ledger-adatbázis

A főkönyv-adatbázisok egyszerű megoldást nyújtanak az olyan alkalmazások számára, amelyekhez az adatbázis teljes élettartama alatt védeni kell az összes adat integritását. A főkönyv-adatbázisok csak főkönyvtáblákat tartalmazhatnak. A normál táblák létrehozása (amelyek nem főkönyvtáblák) nem támogatottak. Minden tábla alapértelmezés szerint frissíthető főkönyvtáblaként van létrehozva alapértelmezett beállításokkal, ami nagyon egyszerűvé teszi az ilyen táblák létrehozását. Az adatbázist a létrehozáskor konfigurálhatja főkönyv-adatbázisként. A létrehozás után a főkönyv-adatbázis nem konvertálható normál adatbázissá. További információ: Főkönyvi adatbázis konfigurálása.

Adatbázis-kivonatok

Az adatbázis-főkönyv legújabb blokkjának kivonatát adatbázis-kivonatnak nevezzük. Ez az adatbázis összes főkönyvi táblájának állapotát jelöli a blokk létrehozásakor.

Blokk létrehozásakor a társított adatbázis-kivonat közzététele és tárolása az adatbázison kívül, illetéktelen hozzáféréssel védett tárolóban történik. Mivel az adatbázis-kivonatok a létrehozásuk időpontjában az adatbázis állapotát képviselik, a kivonatok illetéktelen beavatkozással szembeni védelme kiemelten fontos. Egy támadó, aki hozzáféréssel rendelkezik az kivonatok módosításához, a következőre képes:

  1. Illetéktelen hozzáférés az adatbázisban lévő adatokhoz.
  2. Hozza létre az adatbázist ábrázoló kivonatokat ezekkel a módosításokkal.
  3. Módosítsa az kivonatokat a blokk tranzakcióinak frissített kivonatának megfelelően.

A Ledger lehetővé teszi az adatbázis-kivonatok automatikus létrehozására és tárolására nem módosítható tárolóban vagy az Azure Confidential Ledgerben az illetéktelen módosítás megakadályozása érdekében. Másik lehetőségként a felhasználók manuálisan is létrehozhatnak adatbázis-kivonatokat, és tárolhatják őket a választott helyen. Az adatbázis-kivonatok később ellenőrzik, hogy a főkönyvtáblákban tárolt adatokat nem módosították-e.

Főkönyv ellenőrzése

A főkönyv funkció nem teszi lehetővé a főkönyvrendszernézetek, a hozzáfűző táblák és az előzménytáblák tartalmának módosítását. Egy támadó vagy rendszergazda azonban, aki rendelkezik a gép irányításával, megkerülheti az összes rendszerellenőrzést, és közvetlenül módosíthatja az adatokat. A támadó vagy a rendszergazda például szerkesztheti a tárolóban lévő adatbázisfájlokat. A Ledger nem tudja megakadályozni az ilyen támadásokat, de garantálja, hogy a rendszer minden illetéktelen módosítást észlel a főkönyv adatainak ellenőrzésekor.

A főkönyv-ellenőrzési folyamat bemenetként egy vagy több korábban létrehozott adatbázis-kivonatot vesz fel, és az adatbázis-főkönyvben tárolt kivonatokat újrafordítja a főkönyvtáblák aktuális állapota alapján. Ha a kiszámított kivonatok nem felelnek meg a bemeneti kivonatoknak, az ellenőrzés meghiúsul, ami azt jelzi, hogy az adatok illetéktelenek lettek. A Ledger ezután jelenti az észlelt összes következetlenséget.