Comment utiliser des variables spéciales avec sql

Si un utilisateur sur une machine cliente se connecte à une base de données SQL sur un serveur, cette connexion établit une session. Si l'utilisateur se connecte à plusieurs bases de données, la session associée à la connexion la plus récente est considéré comme le session- actuelle sessions précédentes sont considérés dormance. SQL définit plusieurs variables spéciales qui sont précieuses sur les systèmes multi-utilisateurs. Ces variables de garder trace des différents utilisateurs.

Voici une liste des variables spéciales:

  • SESSION_USER: La variable spéciale SESSION_USER contient une valeur qui est égale à l'identificateur d'autorisation d'utilisateur de la session de données SQL courant. Si vous écrivez un programme qui exécute une fonction de surveillance, vous pouvez interroger SESSION_USER pour savoir qui est l'exécution d'instructions SQL.




  • UTILISATEUR ACTUEL: Un module de SQL peut avoir un identifiant d'autorisation spécifié par l'utilisateur qui lui est associé. La UTILISATEUR ACTUEL variable stocke cette valeur. Si un module n'a pas de tel identificateur, UTILISATEUR ACTUEL a la même valeur que SESSION_USER.

  • SYSTEM_USER: La SYSTEM_USER variable contient l'identifiant de l'utilisateur du système d'exploitation. Cet identificateur peut être différent de l'identifiant de ce même utilisateur dans un module de données SQL. Un utilisateur peut se connecter au système en tant LARRY, par exemple, mais lui-même pour identifier un module en tant que PLANT_MGR. La valeur de SESSION_USER est PLANT_MGR. Si il ne fait aucune spécification explicite de l'identifiant du module, et UTILISATEUR ACTUEL contient également PLANT_MGR, SYSTEM_USER détient la valeur LARRY.

La SYSTEM_USER, SESSION_USER, et UTILISATEUR ACTUEL variables spéciales suivre qui utilise le système. Vous pouvez maintenir une table de journal et insérer périodiquement dans ce tableau les valeurs qui SYSTEM_USER, SESSION_USER, et UTILISATEUR ACTUEL contenir. L'exemple suivant montre comment:

INSERT INTO USAGELOG (snapshot) VALUES ('User' || SYSTEM_USER || 'avec l'ID' || SESSION_USER || 'actif à' || CURRENT_TIMESTAMP) -

Cette instruction génère des entrées de journal similaires à l'exemple suivant:

LARRY utilisateur avec ID PLANT_MGR actif à 2013-04-07-23.50.00

» » » » Comment utiliser des variables spéciales avec sql