Um pouco sem importância, mas despertou minha curiosidade.
Acabei de efetuar login em um banco de dados Oracle 10g pela primeira vez usando o Oracle SQL Developer Tools.
Usei um login de usuário genérico que não é meu nome (nottstest2), de uma máquina que se chama algo que não é meu nome (courgette). Meu nome não está em nenhum lugar no banco de dados e não está associado ao login.
No entanto, os logs do servidor mostram uma conexão de "Jon Hopkins".
Como ele sabe quem eu sou? Ele está sendo retirado do meu login do Windows de alguma forma (embora eu não esteja usando login único)?
Como você se conecta
courgette
? Esse nome de usuário o identificaria?Você pode verificar isso executando
O namespace USERENV pode recuperar muitas informações diferentes sobre o usuário e seu ambiente. Saiba mais .
O cliente Oracle (também conhecido como driver) sabe quem você é em seu sistema operacional (porque esse código é executado em seu computador).
Esta informação é transmitida como parte do processo de login.
Dependendo do seu aplicativo e tipo de driver (OCI/JDBC), ele até transmite informações como o nome do seu computador.
Se puder, execute um
SELECT * FROM v$session WHERE sid = userenv('SID')
e você verá todas as informações que o driver revelou sobre o seu ambiente.Talvez você não consiga consultar v$session porque isso precisa de privilégios não padrão.
Você usa um servidor LDAP para autenticar logins (por exemplo, Microsoft Active Directory, Novel eDirectory, etc.)? A Oracle pode interrogar isso, com base no login da sessão do sistema operacional, como você sugere, para obter seu nome real.