Como usar variáveis ​​especiais com SQL

Se um usuário em uma máquina cliente se conecta a um banco de dados SQL em um servidor, neste contexto, estabelece um sessão. Se o usuário se conecta a diversas bases de dados, a sessão associada com a conexão mais recente é considerado o sessão atual- sessões anteriores são considerados dormente. SQL define vários variáveis ​​especiais que são valiosos em sistemas multi-utilizador. Essas variáveis ​​acompanhar os diferentes usuários.

Aqui está uma lista das variáveis ​​especiais:

  • SESSION_USER: A variável especial SESSION_USER tem um valor que é igual ao identificador da sessão SQL corrente de autorização do usuário. Se você escrever um programa que executa uma função de monitoramento, você pode interrogar SESSION_USER para descobrir instruções SQL que está sendo executado.

  • USUÁRIO ATUAL: Um módulo de SQL pode ter um identificador de autorização especificado pelo usuário associado a ele. o USUÁRIO ATUAL variável armazena este valor. Se um módulo não tem tal identificador, USUÁRIO ATUAL tem o mesmo valor que SESSION_USER.

  • SYSTEM_USER: O SYSTEM_USER variável contém o identificador do usuário do sistema operacional. Este identificador pode ser diferente do identificador do utilizador que mesmo em um módulo de SQL. Um usuário pode fazer logon no sistema como LARRY, por exemplo, mas identificar-se a um módulo tão PLANT_MGR. O valor em SESSION_USER é PLANT_MGR. Se ele não faz nenhuma especificação explícita do identificador módulo, e USUÁRIO ATUAL também contém PLANT_MGR, SYSTEM_USER mantém o valor LARRY.

o SYSTEM_USER, SESSION_USER, e USUÁRIO ATUAL variáveis ​​especiais rastrear quem está usando o sistema. Você pode manter uma tabela de log e periodicamente inserir em que a tabela de valores que SYSTEM_USER, SESSION_USER, e USUÁRIO ATUAL conter. O exemplo a seguir mostra como:

INSERT INTO USAGELOG (INSTANTÂNEO) VALUES ( 'User' || SYSTEM_USER || 'com ID' || SESSION_USER || 'ativa em' || CURRENT_TIMESTAMP) -

Esta declaração produz entradas de log semelhantes ao seguinte exemplo:

Usuário LARRY com ID PLANT_MGR ativo em 2013-04-07-23.50.00

menu