Sdílet prostřednictvím


Zabezpečení časové tabulky

platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceSQL Database v Microsoft Fabric

Abyste pochopili zabezpečení, jak se vztahuje na dočasné tabulky, musíte porozumět principům zabezpečení, které platí pro dočasné tabulky. Jakmile tyto principy zabezpečení pochopíte, můžete se ponořit do zabezpečení souvisejícího s prohlášeními CREATE TABLE, ALTER TABLEa SELECT.

Principy zabezpečení

Následující tabulka popisuje principy zabezpečení, které platí pro dočasné tabulky:

Princip Popis
Povolení nebo zakázání správy verzí systému vyžaduje u ovlivněných objektů nejvyšší oprávnění. Povolení a zakázání SYSTEM_VERSIONING vyžaduje oprávnění CONTROL na aktuální tabulku i tabulku historie.
Data historie se nedají upravovat přímo Když je SYSTEM_VERSIONINGON, uživatelé nemohou měnit historická data bez ohledu na jejich skutečná oprávnění k aktuální nebo historické tabulce. Toto omezení zahrnuje úpravy dat i schématu. 1
Dotazování na data historie vyžaduje oprávnění SELECT v tabulce historie. Uživatel s oprávněním SELECT pro aktuální tabulku nemá automaticky oprávnění k SELECT v tabulce historie.
Audit odhalí operace ovlivňující tabulku historie určitými způsoby. Nastavení auditování z aktuální tabulky se automaticky nepoužije u tabulky historie. Auditování musí být explicitně povolené pro tabulku historie. Po povolení auditování v tabulce historie pravidelně zaznamenává všechny přímé pokusy o přístup k datům (bez ohledu na to, jestli byly úspěšné nebo ne).

SELECT s časovým rozšířením dotazu ukazuje, že tabulka historie byla ovlivněna touto operací.

CREATE/ALTER dočasná tabulka zveřejňuje také informace o tom, že kontrola oprávnění probíhá i v tabulce historie. Soubor auditu obsahuje další záznamy pro tabulku historie.

Operace DML v aktuální tabulce odhalí, že byla ovlivněna tabulka historie, ale additional_information poskytuje nezbytný kontext (DML byl výsledkem SYSTEM_VERSIONING).

1 Pokud máte oprávnění ALTER k aktuální tabulce a tabulce historie a vy vyřadíte sloupec v aktuální tabulce, přidružený sloupec v tabulce historie se také zahodí, i když SYSTEM_VERSIONING je ON.

Provádění operací schématu

Pokud je SYSTEM_VERSIONING nastavena na ON, operace úprav schématu jsou omezené.

Nepovolené modifikační operace schématu ALTER

Operace Aktuální tabulka Tabulka historie
DROP TABLE Zamítnutý Zamítnutý
ALTER TABLE...SWITCH PARTITION pouze SWITCH IN (viz Oddíl s časovými tabulkami) pouze SWITCH OUT (viz Partition s dočasnými tabulkami)
ALTER TABLE...DROP PERIOD Zamítnutý Není k dispozici
ALTER TABLE...ADD PERIOD Není k dispozici Zamítnutý

Povolené operace ALTER TABLE

Operace Současný Historie
ALTER TABLE...REBUILD Povoleno (samostatně) Povoleno (nezávisle)
CREATE INDEX Povoleno (nezávisle) Povoleno (nezávisle)
CREATE STATISTICS Povoleno (samostatně) Povoleno (nezávisle)

Zabezpečení příkazu CREATE časové tabulky

Funkce Vytvoření nové tabulky historie Opakované použití existující tabulky historie
Požadováno oprávnění oprávnění CREATE TABLE v databázi

ALTER oprávnění ke schématům, do kterých se vytvářejí aktuální tabulky a tabulky historie
oprávnění CREATE TABLE v databázi

ALTER oprávnění ke schématu, ve kterém bude vytvořena aktuální tabulka.

CONTROL oprávnění k tabulce historie zadané jako součást příkazu CREATE TABLE vytvoření dočasné tabulky.
Audit Audit ukazuje, že se uživatelé pokusili vytvořit dva objekty. Operace může selhat kvůli nedostatku oprávnění k vytvoření tabulky v databázi nebo kvůli nedostatku oprávnění ke změně schémat pro některou z tabulek. Audit ukazuje, že byla vytvořena temporální tabulka. Operace může selhat kvůli nedostatku oprávnění k vytvoření tabulky v databázi, nedostatek oprávnění ke změně schématu dočasné tabulky nebo nedostatek oprávnění k tabulce historie.

Zabezpečení příkazu ALTER časové tabulky SET (SYSTEM_VERSIONING ON/OFF)

Funkce Vytvoření nové tabulky historie Opakované použití existující tabulky historie
Požadováno oprávnění CONTROL oprávnění v databázi.

CREATE TABLE oprávnění v databázi.

ALTER oprávnění ke schématům, do kterých se vytváří tabulka historie.
CONTROL oprávnění k původní tabulce, která je změněna.

CONTROL oprávnění k tabulce historie zadané jako součást příkazu ALTER TABLE.
Audit Audit ukazuje, že dočasná tabulka byla změněna a tabulka historie byla vytvořena současně. Tato operace může selhat kvůli chybějícím oprávněním k vytvoření tabulky v databázi, chybějícím oprávněním ke změně schématu pro tabulku historie nebo nedostatku oprávnění k úpravě dočasné tabulky. Audit ukazuje, že dočasná tabulka byla změněna, ale operace vyžadovala přístup k tabulce historie. Operace může selhat kvůli nedostatku oprávnění v tabulce historie nebo kvůli chybějícím oprávněním k aktuální tabulce.

Zabezpečení příkazu SELECT

U příkazů SELECT, které nemají vliv na tabulku historie, se oprávnění SELECT nezmění. Pro příkazy SELECT, které ovlivňují tabulku historie, se u aktuální tabulky i tabulky historie vyžaduje oprávnění SELECT.