Frage

Die Datenbank zeigt alle Änderungen über den Mechanismus " Change Data Capture ".Ich muss weitere Informationen zu Benutzern hinzufügen, die diese Änderungen vornehmen. Die folgenden Benutzer sind keine SQL Server-Benutzer.Die Sicherheitsberechtigung erfolgt über einen Außenmechanismus.

Ich möchte einen Helfertisch mit Spalten hinzufügen " start_lsn " und " userid ", um eine Transaktion mit dem autorisierten Benutzer zuzuordnen. Gibt es eine Möglichkeit, den Wert " start_lsn " zu ermitteln, der der aktuellen Transaktion entspricht, die in dem Anwendungscode ausgeführt wird?

War es hilfreich?

Lösung

Derzeit habe ich folgende Lösung gefunden:

1)

  • Erstellen Sie eine weitere Tabelle (z. B. die "UserActivity" ), die die "ID" und "userid" hat Säulen;

  • Verwenden Sie die Spalte "ID" als Primärschlüssel;

  • Aktivieren Sie die CDC-Option für diese Tabelle.

2)

  • Alle Datenmodifizierungsvorgänge mit einem Transaktionsbereich ;

  • Fügen Sie einen neuen Datensatz in diese Tabelle mit dem aktuellen "userid" während einer bestimmten Transaktion hinzu:

    • beginnen exklusive Transaktion;

    • Führen Sie "Datenmanipulation";

    • Geben Sie Informationen zu "userid" in die "useraktivität" ein.

Da die Transaktion exklusiv ist und alle Vorgänge innerhalb eines einzelnen Transaktionsbereichs erfolgen, ist der "last_lsn" ) der Wert gleich. .

danach mit dem Join-Operator Daten von der "UserActivity" -Tabelle mit Datenmanipulationsinformationen zusammenführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top