Sicherheit bei temporale 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, 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 |
Ü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 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 |
Ü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 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
- 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 und speicheroptimierten Tabellen
- Metadatenansichten und Funktionen für temporale Tabellen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für