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 DatenbankALTER -Berechtigung für die Schemas, in denen die aktuellen Tabellen und Verlaufstabellen erstellt werden |
CREATE TABLE -Berechtigung in der DatenbankALTER -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.
Zugehöriger Inhalt
- Temporale Tabellen
- Erste Schritte mit temporalen Tabellen mit Systemversionsverwaltung
- Systemkonsistenzprüfungen von temporalen Tabellen
- Partitionierung mit temporalen Tabellen
- Überlegungen und Einschränkungen zu temporalen Tabellen
- Verwalten der Beibehaltung von Verlaufsdaten in temporalen Tabellen mit Systemversionsverwaltung
- Temporale Tabellen mit Systemversionsverwaltung für speicheroptimierte Tabellen
- Metadatenansichten und Funktionen für temporale Tabellen