Megosztás:


Temporális táblabiztonság

Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Az időbeli táblákra vonatkozó biztonság megértéséhez ismernie kell az időbeli táblákra vonatkozó biztonsági alapelveket. Miután megismerte ezeket a biztonsági alapelveket, készen áll a CREATE TABLE, ALTER TABLEés SELECT utasítások biztonságának megismerésére.

Biztonsági alapelvek

Az alábbi táblázat az időbeli táblákra vonatkozó biztonsági alapelveket ismerteti:

Principle Description
A rendszer verziószámozásának engedélyezése/letiltása a legmagasabb jogosultságokat igényli az érintett objektumokon A SYSTEM_VERSIONING engedélyezéséhez és letiltásához CONTROL engedély szükséges az aktuális és az előzménytáblán is.
Az előzményadatok közvetlenül nem módosíthatók Ha SYSTEM_VERSIONINGON, a felhasználók nem módosíthatják az előzményadatokat, függetlenül attól, hogy az aktuális vagy az előzménytáblán milyen tényleges engedélyekkel rendelkeznek. Ez a korlátozás adat- és sémamódosításokat is magában foglal. 1
Az előzmények adatainak lekérdezéséhez SELECT engedélyre van szükség az előzménytáblában Az aktuális táblán SELECT engedéllyel rendelkező felhasználók nem rendelkeznek automatikusan SELECT engedéllyel az előzménytáblában.
Az auditálás feltárja az előzménytáblát érintő műveleteket meghatározott módokon. Az aktuális tábla naplózási beállításai nem lesznek automatikusan alkalmazva az előzménytáblára. Az auditálást explicit módon engedélyezni kell az előzménytáblához. Ha engedélyezve van, a naplózás az előzménytáblán rendszeresen rögzíti az adatok elérésére tett összes közvetlen kísérletet (függetlenül attól, hogy sikeresek voltak-e vagy sem).

SELECT időbeli lekérdezésbővítmény azt mutatja, hogy az előzménytáblára hatással volt ez a művelet.

CREATE/ALTER temporális tábla információkat tesz közzé arról, hogy az engedély-ellenőrzés az előzménytáblán is megtörténik. A naplózási fájl további rekordokat tartalmaz az előzménytáblához.

A jelenlegi tábla DML-műveletei rávilágítanak, hogy az előzménytábla érintett volt, de additional_information fontos kontextust szolgáltat (a DML a SYSTEM_VERSIONINGeredménye).

1 Ha az aktuális táblára és az előzménytáblára alter engedéllyel rendelkezik, és az aktuális táblában elvet egy oszlopot, az előzménytábla társított oszlopa is el lesz vetve, még akkor is, ha SYSTEM_VERSIONINGON.

Sémaműveletek végrehajtása

Ha SYSTEM_VERSIONINGONértékre van állítva, a sémamódosítási műveletek korlátozottak.

Nem engedélyezett ALTER-sémaműveletek

Operation Aktuális tábla Előzménytábla
DROP TABLE Disallowed Disallowed
ALTER TABLE...SWITCH PARTITION csak SWITCH IN (lásd: Partíció időbeli táblákkal) csak SWITCH OUT (lásd: Partíció időbeli táblákkal)
ALTER TABLE...DROP PERIOD Disallowed N/A
ALTER TABLE...ADD PERIOD N/A Disallowed

Engedélyezett ALTER TABLE-műveletek

Operation Current History
ALTER TABLE...REBUILD Engedélyezett (önállóan) Engedélyezett (önállóan)
CREATE INDEX Engedélyezett (önállóan) Engedélyezett (önállóan)
CREATE STATISTICS Önállóan engedélyezett Engedélyezett (önállóan)

A CREATE temporális tábla utasításának biztonsága

Feature Új előzménytábla létrehozása Meglévő előzménytábla újrafelhasználása
Engedély szükséges CREATE TABLE engedély az adatbázisban

ALTER engedélyek azon sémákhoz, amelyekbe az aktuális és az előzménytáblákat létrehozzák
CREATE TABLE engedély az adatbázisban

ALTER engedélyt arra a sémára, amelyben az aktuális tábla létrejön.

CONTROL engedély az előzménytáblán az időtáblát létrehozó CREATE TABLE utasítás részeként van megadva.
Audit Az audit azt mutatja, hogy a felhasználók két objektumot próbáltak létrehozni. A művelet meghiúsulhat az adatbázis tábláinak létrehozásához szükséges engedélyek hiánya vagy a táblák sémáinak módosítására vonatkozó engedélyek hiánya miatt. Az audit azt mutatja, hogy a temporális tábla létrejött. A művelet meghiúsulhat, ha nincs jogosultsága egy tábla létrehozására az adatbázisban, nem rendelkezik az időbeli tábla sémájának módosításához szükséges engedélyekkel, vagy az előzmények táblán lévő engedélyek hiánya miatt.

Az ALTER temporális tábla SET (SYSTEM_VERSIONING BE/KI) utasításának biztonsága

Feature Új előzménytábla létrehozása Meglévő előzménytábla újrafelhasználása
Engedély szükséges CONTROL hozzáférési jog az adatbázisban.

CREATE TABLE hozzáférési jog az adatbázisban.

ALTER engedély a sémákhoz, amelyekbe az előzménytábla létrehozásra kerül.
Az eredeti táblázaton végrehajtott módosítási jogosultság CONTROL.

CONTROL ALTER TABLE utasítás részeként megadott előzménytáblára vonatkozó engedélyt.
Audit Az audit azt mutatja, hogy a temporális tábla módosult, és az előzménytábla egyidejűleg lett létrehozva. Ez a művelet meghiúsulhat az adatbázis tábláinak létrehozásához szükséges engedélyek hiánya, az előzménytáblák sémájának módosítására vonatkozó engedélyek hiánya vagy az időbeli tábla módosítására vonatkozó engedély hiánya miatt. Az audit azt mutatja, hogy a temporális tábla módosult, de a művelet hozzáférést igényelt az előzménytáblához. A művelet meghiúsulhat az előzmények táblában lévő engedélyek hiánya vagy az aktuális tábla engedélyeinek hiánya miatt.

A SELECT utasítás biztonsága

SELECT engedély nem változik SELECT olyan utasítások esetében, amelyek nem befolyásolják az előzménytáblát. Az előzménytáblát érintő SELECT utasításokhoz SELECT engedélyre van szükség az aktuális táblában és az előzménytáblában is.