Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
För att säkra temporala tabeller måste du förstå de säkerhetsprinciper som gäller för dem. När du förstår dessa principer kan du tillämpa säkerhet på CREATE TABLE, ALTER TABLE, och SELECT påståenden.
Säkerhetsprinciper
I följande tabell beskrivs de säkerhetsprinciper som gäller för temporala tabeller:
| Principle | Description |
|---|---|
| Aktivera/inaktivera systemversionshantering kräver högsta behörighet för berörda objekt | Aktivering och inaktivering av SYSTEM_VERSIONING kräver CONTROL behörighet för både den aktuella tabellen och historiktabellen. |
| Historikdata kan inte ändras direkt | När SYSTEM_VERSIONING är ONkan användare inte ändra historikdata, oavsett deras behörigheter i den aktuella eller historiktabellen. Den här begränsningen omfattar både data- och schemaändringar.
1 |
Att göra frågor i historikdata kräver SELECT behörighet på historiktabellen |
En användare med SELECT behörighet i den aktuella tabellen har inte automatiskt SELECT behörighet i historiktabellen. |
| Granskning visar åtgärder som påverkar historiktabellen på specifika sätt | Granskningsinställningar från den aktuella tabellen tillämpas inte automatiskt på historiktabellen. Du måste aktivera granskning explicit för historiktabellen. Efter att du aktiverat den fångar granskningen av historiktabellen alla direkta försök att komma åt datan, oavsett om de lyckas eller inte.SELECT med temporal query extension visas att operationen påverkade historiktabellen.CREATE/ALTER temporala tabellen visar också information om att behörighetskontrollen sker i historiktabellen. Granskningsfilen innehåller ytterligare poster för historiktabellen.Data manipulationsspråkets (DML)-operationer i den aktuella tabellen visar att operationen påverkade historiktabellen, men additional_information ger nödvändig kontext (DML var resultatet av SYSTEM_VERSIONING). |
1 Om du har ALTER behörighet på den aktuella tabellen och historiktabellen, och du lägger bort en kolumn i den aktuella tabellen, tas även den associerade kolumnen i historiktabellen bort, även om SYSTEM_VERSIONING är ON.
Utföra schemaåtgärder
När SYSTEM_VERSIONING är inställt på ONbegränsas schemaändringsåtgärderna.
Inte tillåtna ALTER SCHEMA operationer
| Operation | Nuvarande tabell | Historiktabell |
|---|---|---|
DROP TABLE |
Disallowed | Disallowed |
ALTER TABLE...SWITCH PARTITION |
endast SWITCH IN (se Partition med temporära tabeller) |
endast SWITCH OUT (se Partition med temporära tabeller) |
ALTER TABLE...DROP PERIOD |
Disallowed | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Disallowed |
Tillåtna ALTER TABLE åtgärder
| Operation | Current | History |
|---|---|---|
ALTER TABLE...REBUILD |
Tillåts (oberoende) | Tillåts (oberoende) |
CREATE INDEX |
Tillåts (oberoende) | Tillåts (oberoende) |
CREATE STATISTICS |
Tillåts (oberoende) | Tillåts (oberoende) |
Säkerhet för instruktionen CREATE temporal table
| Feature | Skapa ny historiktabell | Återanvänd befintlig historiktabell |
|---|---|---|
| Behörighet krävs |
CREATE TABLE behörighet i databasenALTER behörighet på scheman där du skapar nuvarande och historiktabeller |
CREATE TABLE behörighet i databasenALTER behörighet för schemat där du skapar den aktuella tabellen.CONTROL behörighet i historiktabellen som anges som en del av CREATE TABLE-instruktionen som skapar den temporala tabellen. |
| Audit | Granskning visar att användare försökte skapa två objekt. Operationen kan misslyckas på grund av brist på behörigheter för att skapa en tabell i databasen, eller på grund av brist på behörigheter för att ändra scheman för någon av tabellerna. | Granskning visar att den tidsmässiga tabellen skapades. Åtgärden kan misslyckas på grund av bristande behörighet att skapa en tabell i databasen, brist på behörigheter för att ändra schemat för den tidsmässiga tabellen eller brist på behörigheter i historiktabellen. |
Säkerheten för ALTER:s temporala tabell SET (SYSTEM_VERSIONING)-sats
| Feature | Skapa ny historiktabell | Återanvänd befintlig historiktabell |
|---|---|---|
| Behörighet krävs |
CONTROL behörighet i databasen.CREATE TABLE behörighet i databasen.ALTER behörighet på scheman där du skapar historiktabellen. |
CONTROL behörighet för den ursprungliga tabellen som du ändrar.CONTROL behörighet i historiktabellen som anges som en del av ALTER TABLE-instruktionen. |
| Audit | Granskning visar att den tidsmässiga tabellen ändrades och att historiktabellen skapades samtidigt. Denna operation kan misslyckas på grund av brist på behörigheter för att skapa en tabell i databasen, brist på behörigheter för att ändra schemat för historiktabellen eller brist på behörighet att ändra den temporala tabellen. | Granskning visar att den tidsmässiga tabellen har ändrats, men åtgärden krävde åtkomst till historiktabellen. Åtgärden kan misslyckas på grund av bristande behörigheter i historiktabellen eller brist på behörigheter för den aktuella tabellen. |
Säkerhet för SELECT-instruktionen
SELECT-behörigheten förblir oförändrad för SELECT-uttalanden som inte påverkar historiktabellen. För SELECT satser som påverkar historiktabellen behöver SELECT du behörighet både för den aktuella tabellen och historiktabellen.
Relaterat innehåll
- Temporala tabeller
- Kom igång med systemversionsbaserade tidstabeller
- Systemkonsekvenskontroller för tidstabeller
- Partitionering med temporära tabeller
- överväganden och begränsningar för tidstabeller
- Hantera kvarhållning av historiska data i systemversionsbaserade tidstabeller
- systemversionsbaserade tidstabeller med minnesoptimerade tabeller
- vyer och funktioner för temporala tabellmetadata