SQL-Überwachungsprotokolle in Fabric Data Warehouse

Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric

Die Überwachung in Fabric Data Warehouse bietet erweiterte Sicherheits- und Compliancefunktionen durch Nachverfolgen und Aufzeichnen von Datenbankereignissen.

Durch die Verwendung von SQL-Audit-Logs können Sie Datenbankaktivitäten überwachen, potenzielle Sicherheitsbedrohungen erkennen und Compliance-Anforderungen erfüllen, indem Sie eine Audit-Spur wichtiger Aktionen aufrechterhalten, wie zum Beispiel:

  • Authentifizierungsversuche und Zugriffssteuerungsänderungen
  • Datenzugriffs- und Änderungsvorgänge
  • Schemaänderungen und administrative Aktivitäten
  • Berechtigungsänderungen und Sicherheitskonfigurationen

Wichtig

SQL-Überwachungsprotokolle sind standardmäßig AUS. Benutzer mit der Berechtigung Überwachen von Abfragen müssen sie aktivieren, um die Protokolle zu erfassen.

Lesen Sie zunächst die Schritte zum Konfigurieren von SQL-Überwachungsprotokollen in Fabric Data Warehouse.

Lagerung

SQL-Überwachungsprotokolle werden im Ruhezustand verschlüsselt und in OneLake gespeichert.

Für Fabric Data Warehouse werden Überwachungsprotokolle in .XEL Dateien geschrieben, die im Lagerüberwachungsordner in OneLake gespeichert sind.

Benutzer mit den folgenden Rollen können auf den Überwachungsordner zugreifen:

  • Arbeitsbereichsadministratoren
  • Arbeitsbereichsmitglieder
  • Mitwirkende im Arbeitsbereich
  • Arbeitsbereichsbetrachter mit Leseberechtigung für alles

Diese Benutzer können:

  • Durchsuchen Sie den Überwachungsordner
  • Anzeigen der .XEL von der SQL-Überwachung generierten Überwachungsdateien
  • Kopieren der Dateien für die Offlineanalyse
  • Öffnen der Dateien mit Tools wie SQL Server Management Studio (SSMS)

Sie können auch Überwachungsprotokolle mit T-SQL über sys.fn_get_audit_file_v2 abfragen.

Anweisungen finden Sie unter So konfigurieren Sie SQL-Überwachungsprotokolle in Fabric Data Warehouse.

Tipp

Das Konfigurieren von Überwachungsprotokollen in Microsoft Fabric Data Warehouse kann die Speicherkosten abhängig von den aufgezeichneten Aktionsgruppen und Ereignissen erhöhen. Aktivieren Sie nur die erforderlichen Ereignisse, um unnötige Speicherkosten zu vermeiden.

Leistung

Die SQL-Audit-Logs-Funktion ist auf die Verfügbarkeit und Leistung der zu prüfenden Datenbank optimiert. Während Zeiträumen mit sehr hoher Aktivität oder hoher Netzwerklast lässt das Überwachungsfeature möglicherweise die Durchführung von Transaktionen zu, ohne alle zur Überwachung markierten Ereignisse aufzuzeichnen.

Erlaubnisse

Benutzer müssen über die Berechtigung "Überwachungsabfragen" verfügen , um Überwachungsprotokolle zu konfigurieren und abzufragen.

  • Standardmäßig verfügen Arbeitsbereichsadministratoren über die Berechtigung Überwachen von Abfragen für alle Elemente im Arbeitsbereich.
  • Administratoren können anderen Nutzern über das Teilen-Dialogfeld Audit-Abfragen für Einträge gewähren.

Arbeitsbereich-Administratoren können einem Element Audit-Abfrageberechtigungen erteilen, indem sie das geteilte Menü im Fabric-Portal verwenden. Um zu überprüfen, ob ein Benutzer über die Berechtigung Überwachen von Abfragen verfügt, überprüfen Sie die Einstellungen unter Berechtigungen verwalten.

  1. Wählen Sie in Ihrem Lagerartikel die Schaltfläche " Freigeben " aus.

    Oder, im Fabric-Portal, in Ihrem Arbeitsbereich. Wählen Sie das ... Kontextmenü für Ihr Warehouse-Element aus, und wählen Sie "Berechtigungen verwalten" aus.

  2. Im Fenster "Personen Zugriff gewähren " gewähren Sie einem Benutzer Berechtigungen.

    Screenshot, der zeigt, wo man die Berechtigung

Abfrage von Audit-Logs mit T-SQL-Berechtigungen

Erteile den Nutzern die VIEW DATABASE SECURITY AUDIT Berechtigung, damit sie Audit-Logs mit T-SQL-Berechtigungen abfragen können, auch wenn sie keine Workspace-Admin-Rollen haben.

Wenn Sie folgende Berechtigung erteilen, kann ein Benutzer Audit-Logs mit der sys.fn_get_audit_file_v2 Funktion abfragen:

GRANT VIEW DATABASE SECURITY AUDIT TO [user];

Tipp

Die Berechtigung VIEW DATABASE SECURITY AUDIT gewährt nur die Möglichkeit, Audit-Logs abzufragen. Es gewährt keinen Zugriff auf die Dateien oder die Berechtigung, die Audit-Konfiguration zu ändern.

Überwachungsaktionsgruppen und -aktionen auf Datenbankebene

Um die Konfiguration von Überwachungsprotokollen zugänglicher zu gestalten, verwendet das Fabric-Portal benutzerfreundliche Namen, damit Nicht-SQL-Administratoren und andere Benutzer die erfassten Ereignisse im Fabric Data Warehouse leicht verstehen können.

Fabric ordnet diese freundlichen Namen den zugrunde liegenden SQL-Überwachungsaktionsgruppen zu. Verwenden Sie die folgende Tabelle als Referenz.

Freundlicher Name Name der Aktionsgruppe BESCHREIBUNG
Auf das Objekt wurde zugegriffen DATABASE_OBJECT_ACCESS_GROUP Protokolliert den Zugriff auf Datenbankobjekte wie Nachrichtentypen, Assemblys oder Verträge.
Objekt wurde geändert DATABASE_OBJECT_CHANGE_GROUP Protokolliert CREATE-, ALTER- oder DROP-Vorgänge für Datenbankobjekte.
Objektbesitzer geändert DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP Protokolliert Besitzeränderungen von Datenbankobjekten.
Objektberechtigung wurde geändert DATABASE_OBJECT_PERMISSION_CHANGE_GROUP Protokolliert GRANT-, REVOKE- oder DENY-Aktionen für Datenbankobjekte.
Der Benutzer wurde geändert. DATABASE_PRINCIPAL_CHANGE_GROUP Protokolliert das Erstellen, Ändern oder Löschen von Datenbankprinzipalen (Benutzer, Rollen).
Der Benutzer wurde imitiert. DATABASE_PRINCIPAL_IMPERSONATION_GROUP Protokolliert Identitätswechselvorgänge (z. B. EXECUTE AS).
Das Rollenmitglied wurde geändert DATABASE_ROLE_MEMBER_CHANGE_GROUP Protokolliert das Hinzufügen oder Entfernen von Anmeldungen aus einer Datenbankrolle.
Fehler beim Anmelden des Benutzers. FAILED_DATABASE_AUTHENTICATION_GROUP Protokolliert fehlgeschlagene Authentifizierungsversuche innerhalb der Datenbank.
Die Schema-Berechtigung wurde verwendet SCHEMA_OBJECT_ACCESS_GROUP Protokolliert den Zugriff auf Schemaobjekte.
Schema wurde geändert SCHEMA_OBJECT_CHANGE_GROUP Protokolliert CREATE-, ALTER- oder DROP-Vorgänge in Schemas.
Schemaobjektberechtigung wurde überprüft SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP Protokolliert Änderungen des Schemaobjektbesitzes.
Schemaobjektberechtigung wurde geändert SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP Protokolliert GRANT-, REVOKE- oder DENY-Aktionen für Schemaobjekte.
Batch wurde abgeschlossen BATCH_COMPLETED_GROUP Dieses Ereignis wird ausgelöst, wenn die Ausführung von Batchtexten, gespeicherten Prozeduren oder Transaktionverwaltungsvorgänge abgeschlossen wird.
Batch wurde gestartet BATCH_STARTED_GROUP Dieses Ereignis wird ausgelöst, wenn die Ausführung von Batchtexten, gespeicherten Prozeduren oder Transaktionverwaltungsvorgänge begonnen wird.
Die Überwachung wurde geändert. AUDIT_CHANGE_GROUP Das Ereignis wird ausgelöst, wenn eine Prüfung erstellt, geändert oder gelöscht wird.
Benutzer abgemeldet DATABASE_LOGOUT_GROUP Dieses Ereignis wird ausgelöst, wenn sich ein Datenbankbenutzer bei einer Datenbank abmeldet.
Angemeldeter Benutzer SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP Gibt an, dass ein Prinzipal erfolgreich bei einer Datenbank angemeldet wurde.

Überwachungsaktionen auf Datenbankebene

Zusätzlich zu Aktionsgruppen können Sie einzelne Überwachungsaktionen so konfigurieren, dass bestimmte Datenbankereignisse protokolliert werden:

Überwachungsaktion BESCHREIBUNG
SELECT Protokolliert SELECT-Anweisungen für ein angegebenes Objekt.
INSERT Protokolliert INSERT-Vorgänge für ein angegebenes Objekt.
UPDATE Protokolliert UPDATE-Vorgänge für ein angegebenes Objekt.
DELETE Protokolliert DELETE-Vorgänge für ein angegebenes Objekt.
EXECUTE Protokolliert die Ausführung gespeicherter Prozeduren oder Funktionen.
RECEIVE Protokolliert RECEIVE-Vorgänge in Service Broker-Warteschlangen.
REFERENCES Protokolliert Berechtigungsprüfungen mit Fremdschlüsseleinschränkungen.

Reduzieren Sie Audit-Rauschen durch Prädikatenfilterung

Um zu filtern, welche Ereignisse erfasst werden, verwenden Sie den optionalen Prädikaten-Ausdrucksfilter .

Verwenden Sie Prädikatenfilterung, um Rauschen durch erwartete, sich wiederholende Aktivitäten wie Automatisierungsidentitäten, Serviceprinzipien oder geplante Aufträge zu reduzieren, ohne die Aktionsgruppen, die Ihre Organisation für Compliance- oder Untersuchungszwecke benötigt, deaktivieren zu müssen.

  • Nur wenn ein Ereignis mit dem konfigurierten Prädikat übereinstimmt, wird das SQL-Audit-Log-Ereignis für diese Aktion generiert.
    • Das Filtern erfolgt, bevor das Ereignis geschrieben wird, sodass ausgeschlossene Ereignisse später nicht für eine rückwirkende Untersuchung verfügbar sind. Behandeln Sie Prädikatenausschlüsse als bewusste Audit-Policy-Entscheidung und überprüfen Sie das konfigurierte Prädikat regelmäßig, wenn sich Eigentum, Berechtigungen und Risikoprofile ändern.
  • Prädikatenfilterung bewertet nur Ereignisse, die bereits so konfiguriert sind, dass sie von einer aktivierten Audit-Aktionsgruppe oder -aktion erfasst werden.
    • Wenn die zugrunde liegende Aktionsgruppe nicht aktiviert ist, wird kein Ereignis erzeugt, das das Prädikat auswerten kann, und der Filter hat keine Auswirkung. Um beispielsweise Anweisungen mit einem Prädikat auf dem Feld statement zu filternSELECT, muss man zuerst die Aktionsgruppe Batch Was Completed (BATCH_COMPLETED_GROUP) aktivieren.

Du kannst einen Prädikatenausdruck über das Fabric-Portal oder die REST-API konfigurieren. Für Schritte siehe Konfigurieren eines Prädikatenausdrucks.

Prädikatenausdruckssyntax

Prädikatausdrücke verwenden dieselbe Syntax wie die <predicate_expression> Klausel in CREATE SERVER AUDIT (Transact-SQL), jedoch ohne das WHERE Schlüsselwort:

<predicate_expression> ::=
    { [ NOT ] <predicate_factor>
    [ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }

<predicate_factor> ::=
    event_field_name { = | <> | != | > | >= | < | <= | LIKE }
    { number | 'string' }
  • event_field_name entspricht einer Spalte, die von sys.fn_get_audit_file (Transact-SQL) zurückgegeben wird. Du kannst alle dokumentierten Spalten verwenden, außer file_name, audit_file_offset, und event_time.
  • action_id und class_type sind Zeichenketten, aber man kann sie nur mit numerischen Werten in einem Prädikat vergleichen.
  • String-Vergleiche führen keine implizite Typumwandlung durch.
  • Die maximale Ausdruckslänge beträgt 3.000 Zeichen.
  • Eine leere Zeichenkette bedeutet, dass kein Prädikat angewendet wird.

Um beispielsweise Aktivitäten auszuschließen, die von einem bekannten Dienstprinzipal oder einer Automatisierungsidentität erzeugt werden, filtern Sie auf server_principal_name. Um wiederholende SELECT Aussagen auszuschließen, filtern Sie auf dem statement Feld: NOT statement LIKE 'SELECT %'.

Einschränkungen

  • Ihr Standardarbeitsbereich unterstützt keine SQL-Überwachungsprotokolle.
  • SQL-Überwachungsprotokolle werden für Lagermomentaufnahmen nicht unterstützt.

Wichtig

Überwachungsprotokolle werden innerhalb des Lagerelements in OneLake gespeichert. Wenn Sie das Warehouse löschen, löschen Sie auch die zugehörigen Überwachungsprotokolldateien und können nicht mehr darauf zugreifen.
Um Überwachungsprotokolle für Compliance- oder Untersuchungszwecke aufzubewahren, kopieren Sie die .XEL Dateien an einen anderen Speicherort, bevor Sie das Warehouse löschen.

Einschränkungen bei Endpunkten der SQL-Analyse

Die folgenden Einschränkungen gelten beim Überwachen von SQL-Analyseendpunkten:

  • DML-Vorgänge werden nicht erfasst. Das Audit zeichnet keine Vorgänge wie INSERT, UPDATE, DELETE und MERGE auf, da die Datenmanipulation für Lakehouse-Tabellen über die Lakehouse-Laufzeitumgebung und nicht über den SQL-Analyseendpunkt erfolgt.
  • Der direkte Zugriff auf den Überwachungsordner wird derzeit nicht unterstützt. Benutzer können die zugrunde liegenden .XEL Überwachungsdateien nicht aus dem Lakehouse-Überwachungsordner durchsuchen oder herunterladen.

Sie können weiterhin Audit-Events für SQL-Analytics-Endpunkte mit der T-SQL-Funktion sys.fn_get_audit_file_v2abfragen.

Nächster Schritt