Beveiliging van temporele tabellen
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Als u de beveiliging wilt begrijpen zoals deze van toepassing is op tijdelijke tabellen, moet u de beveiligingsprincipes begrijpen die van toepassing zijn op tijdelijke tabellen. Nadat u deze beveiligingsprincipes hebt begrepen, bent u klaar om de beveiliging rondom de CREATE TABLE
, ALTER TABLE
en SELECT
instructies te bekijken.
Beveiligingsprincipes
In de volgende tabel worden de beveiligingsprincipes beschreven die van toepassing zijn op tijdelijke tabellen:
Principe | Beschrijving |
---|---|
Systeemversiebeheer in- of uitschakelen vereist de hoogste bevoegdheden voor betrokken objecten | Voor het in- en uitschakelen van SYSTEM_VERSIONING is CONTROL machtiging vereist voor zowel de huidige als de geschiedenistabel. |
Geschiedenisgegevens kunnen niet rechtstreeks worden gewijzigd | Wanneer SYSTEM_VERSIONING is ON , kunnen gebruikers geen geschiedenisgegevens wijzigen, ongeacht hun werkelijke machtigingen voor de huidige of geschiedenistabel. Deze beperking omvat zowel gegevens- als schemawijzigingen.
1 |
Voor het opvragen van geschiedenisgegevens is SELECT machtiging voor de geschiedenistabel vereist |
Een gebruiker met SELECT machtiging voor de huidige tabel heeft niet automatisch SELECT machtiging voor de geschiedenistabel. |
Controle toont bewerkingen die van invloed zijn op de geschiedenistabel op specifieke manieren | Controle-instellingen uit de huidige tabel worden niet automatisch toegepast op de geschiedenistabel. Controle moet expliciet zijn ingeschakeld voor de geschiedenistabel. Zodra deze optie is ingeschakeld, worden in de geschiedenistabel regelmatig alle directe pogingen vastgelegd om toegang te krijgen tot de gegevens (ongeacht of ze wel of niet zijn geslaagd).SELECT met de tijdelijke query-extensie geeft aan dat de geschiedenistabel met die bewerking is beïnvloed.CREATE/ALTER tijdelijke tabel onthult informatie dat de machtigingscontrole ook plaatsvindt op de historische tabel. Het auditbestand bevat aanvullende records voor de geschiedenistabel.DML-bewerkingen in de huidige tabel geven aan dat de geschiedenistabel is beïnvloed, maar additional_information de nodige context biedt (DML was het resultaat van SYSTEM_VERSIONING ). |
1 Als u de machtiging ALTER hebt voor de huidige tabel en de geschiedenistabel en u een kolom in de huidige tabel neerzet, wordt de bijbehorende kolom in de geschiedenistabel ook verwijderd, zelfs als SYSTEM_VERSIONING
is ON
.
Schemabewerkingen uitvoeren
Wanneer SYSTEM_VERSIONING
is ingesteld op ON
, zijn bewerkingen voor schemawijziging beperkt.
Niet-toegestane ALTER-schemabewerkingen
Operatie | Huidige tabel | Geschiedenistabel |
---|---|---|
DROP TABLE |
Toegestaan | Toegestaan |
ALTER TABLE...SWITCH PARTITION |
alleen SWITCH IN (zie Partitie met tijdelijke tabellen) |
alleen SWITCH OUT (zie Partitie met tijdelijke tabellen) |
ALTER TABLE...DROP PERIOD |
Toegestaan | N.V.T |
ALTER TABLE...ADD PERIOD |
N.V.T | Toegestaan |
Toegestane ALTER TABLE-bewerkingen
Operatie | Actueel | Geschiedenis |
---|---|---|
ALTER TABLE...REBUILD |
Toegestaan (onafhankelijk) | Toegestaan (onafhankelijk) |
CREATE INDEX |
Toegestaan (onafhankelijk) | Toegestaan (onafhankelijk) |
CREATE STATISTICS |
Toegestaan (onafhankelijk) | Toegestaan (onafhankelijk) |
Beveiliging van de tijdelijke tabelinstructie CREATE
Kenmerk | Nieuwe geschiedenistabel maken | Bestaande geschiedenistabel opnieuw gebruiken |
---|---|---|
Toestemming vereist |
CREATE TABLE toestemming in de databaseALTER machtiging voor de schema's waarin de huidige en geschiedenistabellen zijn aangemaakt |
CREATE TABLE toestemming in de databaseALTER machtiging voor het schema waarin de huidige tabel wordt gemaakt.CONTROL machtiging voor de geschiedenistabel die is opgegeven als onderdeel van de instructie CREATE TABLE waarmee de tijdelijke tabel wordt gemaakt. |
Audit | Controle laat zien dat gebruikers hebben geprobeerd twee objecten te maken. De bewerking kan mislukken vanwege een gebrek aan machtigingen voor het maken van een tabel in de database of vanwege een gebrek aan machtigingen voor het wijzigen van schema's voor een van beide tabellen. | Audit toont aan dat de tijdstabel is aangemaakt. De bewerking kan mislukken als gevolg van een gebrek aan machtigingen voor het maken van een tabel in de database, gebrek aan machtigingen om het schema voor de tijdelijke tabel te wijzigen of omdat er geen machtigingen zijn voor de geschiedenistabel. |
Beveiliging van de instructie ALTER tijdstabel SET (SYSTEM_VERSIONING ON/OFF)
Functie | Nieuwe geschiedenistabel maken | Bestaande geschiedenistabel opnieuw gebruiken |
---|---|---|
Toestemming vereist |
CONTROL toestemming in de database.CREATE TABLE toestemming in de database.ALTER machtiging voor de schema's waarin de geschiedenistabel wordt gemaakt. |
CONTROL toestemming voor de oorspronkelijke tabel die wordt gewijzigd.CONTROL toestemming op de geschiedenistabel gespecificeerd als onderdeel van de ALTER TABLE -instructie. |
Controle | Controle laat zien dat de tijdelijke tabel is gewijzigd en dat de geschiedenistabel tegelijkertijd is gemaakt. Deze bewerking kan mislukken als gevolg van een gebrek aan machtigingen voor het maken van een tabel in de database, gebrek aan machtigingen om het schema voor de geschiedenistabel te wijzigen of omdat er geen machtigingen zijn om de tijdelijke tabel te wijzigen. | Controle geeft aan dat de tijdelijke tabel is gewijzigd, maar dat de bewerking toegang tot de geschiedenistabel vereist. De bewerking kan mislukken vanwege een gebrek aan machtigingen voor de geschiedenistabel of vanwege een gebrek aan machtigingen voor de huidige tabel. |
Beveiliging van de SELECT-instructie
SELECT
toestemming is ongewijzigd voor SELECT
verklaringen die geen invloed hebben op de historie-tabel. Voor SELECT
instructies die van invloed zijn op de geschiedenistabel, is SELECT
toestemming vereist voor zowel de huidige tabel als de geschiedenistabel.
Verwante inhoud
- tijdelijke tabellen
- Aan de slag met tijdelijke tabellen met systeemversies
- consistentiecontroles van het tijdelijke tabelsysteem
- partitioneren met tijdelijke tabellen
- Tijdelijke tabeloverwegingen en -beperkingen
- Beheer het bewaarbeleid van historische gegevens in systeemversiebeheerde temporele tabellen
- Systeem-versie historische tabellen met geheugen-geoptimaliseerde tabellen
- weergaven en functies van metagegevens van tijdelijke tabellen