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í na: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Pro zabezpečení časových tabulek musíte rozumět bezpečnostním principům, které se na ně vztahují. Jakmile pochopíte tyto principy, můžete zabezpečit příkazy CREATE TABLE, ALTER TABLE a SELECT.
Principy zabezpečení
Následující tabulka popisuje principy zabezpečení, které platí pro dočasné tabulky:
| Principle | Description |
|---|---|
| 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ž SYSTEM_VERSIONING je ON, uživatelé nemohou měnit data historie, bez ohledu na jejich oprávnění v 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íte povolit explicitně pro tabulku historie. Po jeho povolení auditování v tabulce historie zachytí všechny přímé pokusy o přístup k datům, ať už jsou úspěšné nebo ne.SELECT s rozšířením temporálního dotazu ukazuje, že operace ovlivnila historickou tabulku.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 jazyka pro manipulaci s daty (DML) v aktuální tabulce ukazují, že operace ovlivnila historickou tabulku, ale additional_information poskytuje nezbytný kontext (DML bylo výsledkem SYSTEM_VERSIONING). |
1 Pokud máte ALTER oprávnění k aktuální tabulce i k tabulce historie a odstraníte sloupec v aktuální tabulce, odpovídající sloupec v tabulce historie se také odstraní, 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é.
ALTER SCHEMA Zakázané operace
| Operation | Aktuální tabulka | Tabulka historie |
|---|---|---|
DROP TABLE |
Disallowed | Disallowed |
ALTER TABLE...SWITCH PARTITION |
pouze SWITCH IN (viz Oddíl s časovými tabulkami) |
pouze SWITCH OUT (viz Oddíl s časovými tabulkami) |
ALTER TABLE...DROP PERIOD |
Disallowed | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Disallowed |
Povolené ALTER TABLE operace
| Operation | Current | History |
|---|---|---|
ALTER TABLE...REBUILD |
Povoleno (samostatně) | Povoleno (samostatně) |
CREATE INDEX |
Povoleno (samostatně) | Povoleno (samostatně) |
CREATE STATISTICS |
Povoleno (samostatně) | Povoleno (samostatně) |
Zabezpečení příkazu CREATE časové tabulky
| Feature | 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áziALTER Povolení ke schématu, kde vytváříte aktuální a historické tabulky |
oprávnění CREATE TABLE v databáziALTER Povolení ke schématu, kde vytváříte aktuální tabulku.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 kterékoliv tabulky. | 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 TABLE pro temporální tabulku SET (SYSTEM_VERSIONING)
| Feature | 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 Povolení ke schématu, kde vytváříte tabulku historie. |
CONTROL oprávnění k původní tabulce, kterou upravujete.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 nedostatku oprávnění k vytvoření tabulky v databázi, nedostatku oprávnění ke změně schématu historické tabulky nebo nedostatku oprávnění upravovat časovou tabulku. | 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 SELECT tvrzení, která ovlivňují tabulku historie, potřebujete SELECT povolení jak na aktuální tabulce, tak na tabulce historie.
Související obsah
- temporální tabulky
- Začínáme se systémově verzovanými temporálními tabulkami
- Kontroly konzistence systému časových tabulek
- Oddíl s dočasnými tabulkami
- aspekty a omezení časových tabulek
- Správa uchovávání historických dat v systémově verzovaných časových tabulkách
- Systémově verzované časové tabulky s tabulkami optimalizovanými pro paměť
- Zobrazení a funkce metadat temporálních tabulek