Sicherheit bei temporale Tabellen

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

Um die Sicherheitsaspekte zu verstehen, die für temporale Tabellen relevant sind, ist es wichtig, die Sicherheitsprinzipale zu verstehen, die für die temporalen Tabellen angewendet werden. Sobald Sie mit diesen Sicherheitsprinzipien 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 bzw. 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 umfasst sowohl Daten- als auch Schemaänderungen
Das Abfragen von Verlaufsdaten erfordert die SELECT -Berechtigung für die Verlaufstabelle Nur weil ein Benutzer über die SELECT -Berechtigung für die aktuelle Tabelle verfügt, bedeutet das nicht, dass er über die SELECT -Berechtigung für die Verlaufstabelle verfügt.
Überwachungsoberflächenvorgänge wirken sich auf Verlaufstabellen in spezifischen Arten aus: Ü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 von 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 temporale Tabellen machen die Information verfügbar, dass Berechtigungsüberprüfungen für die Verlaufstabelle ebenfalls durchgeführt werden. Die Überwachungsdatei enthält einen zusätzlichen Datensatz für die Verlaufstabelle.

DML-Vorgänge auf der aktuellen Tabelle zeigen auf, dass die Verlaufstabelle betroffen war, aber „additional_info“ bietet den erforderlichen Zusammenhang (DML war ein Ergebnis von „system_versioning“).

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 temporären Tabellen) Nur SWITCH OUT (siehe Partitionierung mit temporären 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
Berechtigung erforderlich 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
Audit 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 eine 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
Berechtigung erforderlich 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
Audit 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 möglicherweise nicht ausgeführt werden, 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 auf die Verlaufstabelle wirken, ist die SELECT -Berechtigung sowohl für die aktuelle als auch für die Verlaufstabelle erforderlich.

Weitere Informationen