


Wie können erweiterte SQL Server-Ereignisse die SQL-Anweisungen identifizieren, die sich auf eine bestimmte Tabelle auswirken?
Jan 04, 2025 am 03:58 AMErstellen eines Triggers zum Erfassen von ausgeführtem SQL für eine betroffene Tabelle
Problem:
An Um mysteriöse Aktualisierungen einer bestimmten Tabelle zu beheben, ist es notwendig, die ausgeführte SQL zu identifizieren, die zu den Änderungen geführt hat. Leider befindet sich die Geschäftslogik der Anwendung hauptsächlich in der Datenbank, was es schwierig macht, die Quelle dieser Aktualisierungen zu ermitteln.
Ziel:
Erstellen Sie einen Trigger für die Tabelle in Frage, um die SQL-Anweisungen zu protokollieren, die sie betreffen, und so die Identifizierung des schuldigen SQL zu ermöglichen.
Ansatz mit SQL Server Extended Veranstaltungen:
1. Datenbank zum Testen einrichten:
Erstellen Sie eine einfache Datenbank mit den erforderlichen Tabellen und Triggern, um das problematische Szenario zu simulieren.
2. Erstellen Sie eine erweiterte Ereignissitzung:
Verwenden Sie erweiterte SQL Server-Ereignisse, um die für die Tabelle ausgeführten SQL-Anweisungen zu erfassen. Dazu gehört das Erstellen einer Ereignissitzung, die nach dem Auslöser filtert, der zum Simulieren der Aktualisierungen verwendet wird.
3. Proc1-Prozedur auslösen:
Proc1 ausführen, was eine Kaskade von Prozeduraufrufen auslöst, die schließlich die mysteriöse Aktualisierung der Tabelle verursachen.
4. Stoppen Sie die erweiterte Ereignissitzung:
Nachdem die Verfahren ausgeführt wurden, stoppen Sie die erweiterte Ereignissitzung.
5. Ereignisdaten analysieren:
Verwenden Sie die Funktion fn_xe_file_target_read_file, um die von der erweiterten Ereignissitzung erfassten Daten zu lesen und den Aufrufstapel zu analysieren, um die ausgeführten SQL-Anweisungen zu identifizieren.
Vorteile von Erweiterter Ereignisansatz:
- Erfasst alle ausgeführten SQL-Anweisungen, einschließlich gespeicherter Prozeduren und Trigger
- Bietet detaillierte Aufrufstapelinformationen zur Verfolgung des Ausführungspfads
- Erfordert keine Codeänderung an der Anwendung
Zusätzlich Vorteil:
Die erfassten Daten zu erweiterten Ereignissen können auch zur Behebung von Leistungsproblemen verwendet werden, indem die Abfrageausführungspläne und -ausführungen analysiert werden Statistiken.
Das obige ist der detaillierte Inhalt vonWie können erweiterte SQL Server-Ereignisse die SQL-Anweisungen identifizieren, die sich auf eine bestimmte Tabelle auswirken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)?

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?
