Como a Oracle sabe quem eu sou?

12

Um pouco sem importância, mas despertou minha curiosidade.

Acabei de acessar um banco de dados Oracle 10g pela primeira vez usando o Oracle SQL Developer Tools.

Eu usei um login de usuário genérico que não é o meu nome (nottstest2), de uma máquina chamada algo que não é o meu nome (courgette). Meu nome não está 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 o logon único)?

Jon Hopkins
fonte
22
Não é chamado Oracle por nada.
2
@AlexK. Exatamente o meu pensamento. Todos os dias ... :-)
Lukas Eder
2
Big Oracle é a observação ...

Respostas:

15

Como você se conecta courgette? Esse nome de usuário o identificaria?

Você pode verificar isso executando

select sys_context('userenv', 'os_user') 
from dual;

O espaço de nome USERENV pode recuperar muitas informações diferentes sobre o usuário e seu ambiente. Saiba mais .

APC
fonte
6

O cliente Oracle (também conhecido como driver) sabe quem você é no seu sistema operacional (porque esse código é executado no 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 a SELECT * FROM v$session WHERE sid = userenv('SID')e 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.

um cavalo sem nome
fonte
1

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 SO, como você sugere, para obter seu nome real.

Xophmeister
fonte