So verwenden Sie spezielle Variablen, die mit SQL

Wenn ein Benutzer auf einem Client-Computer auf einem Server mit einer SQL-Datenbank verbindet, stellt diese Verbindung ein Session. Wenn der Benutzer auf mehrere Datenbanken verbindet, die Sitzung mit dem jüngsten Verbindung zugeordnet wird als aktuelle Sitzung- früheren Sitzungen gelten als ruhend. SQL definiert mehrere Sondergrößen die sind wertvoll für Multi-User-Systemen. Diese Variablen behalten den Überblick über die verschiedenen Benutzer.

Hier ist eine Liste der speziellen Variablen:

  • SESSION_USER: Die spezielle Variable SESSION_USER hält einen Wert, der dem Benutzer Berechtigungskennung der aktuellen SQL-Sitzung gleich ist. Wenn Sie ein Programm schreiben, die eine Überwachungsfunktion ausführt, können Sie abfragen SESSION_USER um herauszufinden, wer von SQL-Anweisungen ausführt.

  • CURRENT_USER: Eine SQL-Modul mit ihm einen vom Benutzer angegebenen Berechtigungskennung zugeordnet ist, kann. Das CURRENT_USER Variable speichert diesen Wert. Wenn ein Modul keine solche Kennung hat, CURRENT_USER hat denselben Wert wie SESSION_USER.

  • SYSTEM_USER: Das SYSTEM_USER Variable enthält die Benutzerkennung des Betriebssystems. Diese Kennung kann von dem gleichen Benutzer-Kennung in einer SQL-Modul unterscheiden. Ein Benutzer mit dem System anmelden können als LARRY, beispielsweise selbst, sondern identifizieren zu einem Modul als PLANT_MGR. Der Wert in SESSION_USER ist PLANT_MGR. Wenn er keine explizite Angabe des Modulkennung macht, und CURRENT_USER auch enthält PLANT_MGR, SYSTEM_USER hält den Wert LARRY.

Das SYSTEM_USER, SESSION_USER, und CURRENT_USER Sondergrößen verfolgen, die das System verwendet wird. Sie können eine Protokolltabelle pflegen und regelmäßig in diese Tabelle einfügen die Werte, die SYSTEM_USER, SESSION_USER, und CURRENT_USER enthalten. Das folgende Beispiel zeigt, wie:

INSERT INTO USAGELOG (SNAPSHOT) VALUES ( 'User' || || SYSTEM_USER 'mit der ID' || || SESSION_USER 'aktiv' || CURRENT_TIMESTAMP) -

Diese Anweisung erzeugt Log-Einträge ähnlich wie im folgenden Beispiel:

Benutzer LARRY mit ID PLANT_MGR aktiv bei 2013-04-07-23.50.00

Menü