Как Oracle узнает, кто я?

12

Немного неважно, но это пробудило мое любопытство.

Я только что вошел в базу данных Oracle 10g в первый раз, используя Oracle SQL Developer Tools.

Я использовал общий логин пользователя, который не является моим именем (nottstest2), с машины, которая называется чем-то, что не является моим именем (кабачок). Мое имя нигде в базе данных и не связано с логином.

Тем не менее, журналы сервера показывают соединение от «Джона Хопкинса».

Откуда он знает, кто я? Это каким-то образом извлекается из моего входа в Windows (хотя я не использую единый вход)?

Джон Хопкинс
источник
22
Это не называется Oracle ни за что.
2
@AlexK. Именно мое мышление. Каждый день ... :-)
Лукас Эдер
2
Большой Оракул смотрит ...

Ответы:

15

Как вы входите в систему courgette? Будет ли это имя пользователя идентифицировать вас?

Вы можете проверить это, запустив

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

Пространство имен USERENV может извлекать много различной информации о пользователе и его среде. Узнайте больше .

APC
источник
6

Клиент Oracle (он же драйвер) знает, кто вы в вашей операционной системе (потому что этот код работает на вашем компьютере).

Эта информация передается как часть процесса входа в систему.

В зависимости от вашего приложения и типа драйвера (OCI / JDBC) он даже передает информацию, такую ​​как имя вашего компьютера.

Если вы можете, запустите, SELECT * FROM v$session WHERE sid = userenv('SID')и вы увидите всю информацию, которую водитель показал о вашей среде.

Возможно, вы не сможете запросить v $ session, потому что для этого нужны нестандартные привилегии.

a_horse_with_no_name
источник
1

Используете ли вы сервер LDAP для проверки подлинности имен входа (например, Microsoft Active Directory, Novel eDirectory и т. Д.)? Oracle может запросить это, основываясь на вашем логине сеанса ОС, как вы предлагаете, чтобы получить ваше настоящее имя.

Xophmeister
источник