Skąd Oracle wie, kim jestem?

12

Nieważne, ale wzbudziło moją ciekawość.

Właśnie zalogowałem się do bazy danych Oracle 10g za pomocą Oracle SQL Developer Tools.

Użyłem ogólnego loginu użytkownika, który nie jest moim imieniem (nottstest2), z komputera o nazwie coś, co nie jest moim imieniem (cukinia). Mojego imienia nie ma w bazie danych i nie jest ono powiązane z logowaniem.

Jednak dzienniki serwera pokazują połączenie z „Jona Hopkinsa”.

Skąd to wie, kim jestem? Czy jest w jakiś sposób pobierany z mojego logowania do systemu Windows (chociaż nie używam pojedynczego logowania)?

Jon Hopkins
źródło
22
Nie bez powodu nazywa się to Wyrocznią.
2
@AlexK. Dokładnie moje myślenie. Codziennie ... :-)
Lukas Eder
2
Wielka Wyrocznia patrzy ...

Odpowiedzi:

15

Jak się logujesz courgette? Czy ta nazwa użytkownika Cię zidentyfikuje?

Możesz to sprawdzić, uruchamiając

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

Przestrzeń nazw USERENV może pobierać wiele różnych informacji o użytkowniku i jego środowisku. Dowiedz się więcej .

APC
źródło
6

Klient Oracle (znany również jako sterownik) wie, kim jesteś w systemie operacyjnym (ponieważ ten kod działa na twoim komputerze).

Informacje te są przekazywane w ramach procesu logowania.

W zależności od aplikacji i typu sterownika (OCI / JDBC) przesyła nawet informacje, takie jak nazwa komputera.

Jeśli możesz, uruchom a, SELECT * FROM v$session WHERE sid = userenv('SID')a zobaczysz wszystkie informacje ujawnione przez sterownik na temat twojego środowiska.

Możliwe, że zapytanie o sesję v $ może nie być możliwe, ponieważ wymaga to niestandardowych uprawnień.

koń bez imienia
źródło
1

Czy używasz serwera LDAP do uwierzytelniania danych logowania (np. Microsoft Active Directory, Novel eDirectory itp.)? Oracle może przesłuchać to, na podstawie twojego loginu sesji OS, jak sugerujesz, aby uzyskać twoje prawdziwe imię.

Xophmeister
źródło