Frage

Die Benutzer-ID auf der Verbindungszeichenfolge ist keine Variable und unterscheidet sich von der Benutzer-ID (kann zum Beispiel GUID werden) Ihres Programms. Wie überwachen Sie Protokoll löscht, wenn die Verbindungszeichenfolge des Benutzers ID statisch ist?

Der beste Ort, insert / update anmelden / löschen ist durch Trigger. Aber mit statischer Verbindungszeichenfolge, ist es schwer zu protokollieren, die etwas löschen. Was ist die Alternative?

War es hilfreich?

Lösung

Mit SQL Server können Sie CONTEXT_INFO verwenden Informationen auf den Trigger zu übergeben.

Ich benutze dies in Code (von Web-Anwendungen genannt), wo ich Auslöser verwendet werden (zB mehr Schreibpfade auf dem Tisch). Dies ist, wo nicht meine Logik in die gespeicherten Prozeduren setzen kann.

Andere Tipps

Wir haben eine ähnliche Situation. Unsere Web-Anwendung läuft immer als den gleichen Datenbankbenutzer, aber mit unterschiedlichen logischen Benutzern, die aus Anwendungsspuren und Kontrollen.

Wir gehen im Allgemeinen in dem logischen Benutzer-ID als Parameter in jede gespeicherte Prozedur. Um die Löschungen verfolgen wir die Reihe der Regel nicht gelöscht, sondern nur den Status markieren als gelöscht, stellen Sie die LastChgID und LastChgDate Felder entsprechend. Für wichtige Tabellen, in denen wir ein Überwachungsprotokoll (eine Kopie jeder Änderung Zustand) zu halten, verwenden wir das obige Verfahren und eine Trigger kopiert die Zeile in eine Audit-Tabelle wird die LastChgID bereits richtig und der Trigger gesetzt braucht sich keine Sorgen machen über die ID zu bekommen.

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