Teilen über


Sicherheit bei temporalen Tabellen

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance

Um die Sicherheitsaspekte zu verstehen, die für temporale Tabellen relevant sind, müssen Sie die für temporale Tabellen geltenden Sicherheitsgrundsätze verstehen. Wenn Sie mit diesen Sicherheitsgrundsätzen vertraut sind, sind Sie bereit, sich mit den Sicherheitsfragen zu den CREATE TABLE-, ALTER TABLE-, und SELECT-Anweisungen zu befassen.

Sicherheitsprinzipien

Die folgende Tabelle beschreibt die Sicherheitsprinzipien, die für temporäre Tabellen gelten:

Prinzip Beschreibung
Das Aktivieren/Deaktivieren der Systemversionsverwaltung erfordert die höchsten Berechtigungen für betroffene Objekte Das Aktivieren und Deaktivieren von SYSTEM_VERSIONING erfordert die CONTROL-Berechtigung sowohl für die aktuelle Tabelle als auch für die Verlaufstabelle.
Verlaufsdaten können nicht direkt geändert werden Wenn SYSTEM_VERSIONING ON ist, können die Benutzer Verlaufsdaten nicht ändern, unabhängig davon, über welche tatsächlichen Berechtigungen sie für die aktuelle Tabelle oder die Verlaufstabelle verfügen. Das Beschränkung gilt sowohl für Daten- als auch für Schemaänderungen. 1
Das Abfragen von Verlaufsdaten erfordert die SELECT-Berechtigung für die Verlaufstabelle Ein Benutzer mit SELECT -Berechtigungen für die aktuelle Tabelle verfügt nicht automatisch über die SELECT-Berechtigung für die Verlaufstabelle.
Die Überwachung zeigt Vorgänge auf, die sich in spezifischen Arten auf Verlaufstabellen auswirken Überwachungseinstellungen aus der aktuellen Tabelle werden nicht automatisch auf die Verlaufstabelle angewendet. Die Überwachung muss explizit für die Verlaufstabelle aktiviert werden. Sobald dies geschehen ist, erfasst die Überwachung der Verlaufstabellen regelmäßig alle direkten Versuche auf die Daten zuzugreifen (unabhängig davon, ob sie erfolgreich waren oder nicht).

SELECT mit der Erweiterung für temporale Abfragen zeigt, dass dieser Vorgang Auswirkungen auf die Verlaufstabelle hatte.

CREATE/ALTER einer temporalen Tabelle macht die Information verfügbar, dass die Berechtigungsüberprüfungen für die Verlaufstabelle ebenfalls durchgeführt wird. Die Überwachungsdatei enthält zusätzliche Datensätze für die Verlaufstabelle.

DML-Vorgänge an der aktuellen Tabelle zeigen auf, dass die Verlaufstabelle betroffen war, aber additional_information liefert den erforderlichen Kontext (DML war ein Ergebnis von SYSTEM_VERSIONING).

1 Wenn Sie über ALTER-Berechtigungen für die aktuelle Tabelle und die Verlaufstabelle verfügen und eine Spalte in der aktuellen Tabelle löschen, wird die zugeordnete Spalte in der Verlaufstabelle ebenfalls gelöscht, auch wenn SYSTEM_VERSIONING ON ist.

Ausführen von Schemavorgängen

Wenn SYSTEM_VERSIONING auf ON festgelegt ist, werden Schemaänderungsvorgänge beschränkt.

Nicht zulässige ALTER-Schemavorgänge

Vorgang Aktuelle Tabelle Verlaufstabelle
DROP TABLE Unzulässig Unzulässig
ALTER TABLE...SWITCH PARTITION Nur SWITCH IN (siehe Partitionierung mit temporalen Tabellen) Nur SWITCH OUT (siehe Partitionierung mit temporalen Tabellen)
ALTER TABLE...DROP PERIOD Unzulässig
ALTER TABLE...ADD PERIOD Unzulässig

Zulässigen ALTER TABLE-Vorgänge

Vorgang Aktuell Verlauf
ALTER TABLE...REBUILD Zulässig (unabhängig) Zulässig (unabhängig)
CREATE INDEX Zulässig (unabhängig) Zulässig (unabhängig)
CREATE STATISTICS Zulässig (unabhängig) Zulässig (unabhängig)

Sicherheit der Anweisung CREATE temporal table

Funktion Erstellen einer neuen Verlaufstabelle Wiederverwenden einer vorhandenen Verlaufstabelle
Erforderliche Berechtigung CREATE TABLE-Berechtigung in der Datenbank

ALTER-Berechtigung für die Schemas, in denen die aktuellen Tabellen und Verlaufstabellen erstellt werden
CREATE TABLE-Berechtigung in der Datenbank

ALTER-Berechtigung für das Schema, in dem die aktuelle Tabelle erstellt wird.

CONTROL-Berechtigung für die Verlaufstabelle, die als Teil der CREATE TABLE-Anweisung zum Erstellen der temporalen Tabelle angegeben wurde.
Überwachung Die Überwachung zeigt, dass Benutzer versucht haben, zwei Objekte zu erstellen. Der Vorgang kann fehlschlagen, entweder aufgrund fehlender Berechtigungen zum Erstellen einer Tabelle in der Datenbank, oder aufgrund fehlender Berechtigungen für das Ändern von Schemas in einer der Tabellen. Die Überwachung zeigt, dass die temporale Tabelle erstellt wurde. Der Vorgang kann fehlschlagen, entweder aufgrund fehlender Berechtigungen zum Erstellen einer Tabelle in der Datenbank, aufgrund der fehlenden Berechtigungen zum Ändern des Schemas für die temporale Tabelle, oder aufgrund der fehlenden Berechtigungen für die Verlaufstabelle.

Sicherheit der Anweisung ALTER temporal table SET (SYSTEM_VERSIONING ON/OFF)

Funktion Erstellen einer neuen Verlaufstabelle Wiederverwenden einer vorhandenen Verlaufstabelle
Erforderliche Berechtigung CONTROL-Berechtigung in der Datenbank.

CREATE TABLE-Berechtigung in der Datenbank.

ALTER-Berechtigung für die Schemas, in dem die Verlaufstabelle erstellt wird.
CONTROL-Berechtigung für die ursprüngliche Tabelle, die geändert wird.

CONTROL-Berechtigung für die Verlaufstabelle, die als Teil der ALTER TABLE-Anweisung angegeben wurde.
Überwachung Die Überwachung zeigt, dass die temporale Tabelle geändert und die Verlaufstabelle zur gleichen Zeit erstellt wurde. Der Vorgang kann fehlschlagen, entweder aufgrund fehlender Berechtigungen zum Erstellen einer Tabelle in der Datenbank, aufgrund der fehlenden Berechtigungen zum Ändern des Schemas für die Verlaufstabelle, oder aufgrund der fehlenden Berechtigungen zum Ändern der temporalen Tabelle. Die Überprüfung zeigt, dass die temporale Tabelle geändert wurde, aber der Vorgang erforderte Zugriff auf die Verlaufstabelle. Der Vorgang kann fehlschlagen, da Berechtigungen für die Verlaufstabelle oder für die aktuelle Tabelle fehlen.

Sicherheit der SELECT-Anweisung

SELECT-Berechtigung ist unverändert für SELECT-Anweisungen, die sich nicht auf die Verlaufstabelle auswirken. Für SELECT-Anweisungen, die sich auf die Verlaufstabelle auswirken, ist die SELECT-Berechtigung sowohl für die aktuelle Tabelle als auch für die Verlaufstabelle erforderlich.