Oracle如何知道我是谁?


12

一点都不重要,但这激起了我的好奇心。

我刚刚使用Oracle SQL Developer工具首次登录了Oracle 10g数据库。

我使用了一个非我的名字(nottstest2)的通用用户登录名,该用户名来自一台不是我的名字(小胡瓜)的机器。我的名字在数据库中不存在,并且与登录名无关。

但是,服务器日志显示来自“乔恩·霍普金斯”的连接。

它怎么知道我是谁?它是否以某种方式从我的Windows登录名中被拉出(尽管我没有使用单一登录)?


22
它不叫甲骨文。

2
@AlexK。正是我的想法。每天... :-)
卢卡斯·埃德

2
大甲骨文正在注视着……

Answers:


15

您如何登录courgette?该用户名可以识别您吗?

您可以通过运行来检查

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

USERENV名称空间可以检索有关用户及其环境的许多不同信息。 了解更多


6

Oracle客户端(aka驱动程序)知道您在操作系统中的身份(因为该代码在您的计算机上运行)。

此信息作为登录过程的一部分进行传输。

根据您的应用程序和驱动程序类型(OCI / JDBC),它甚至可以传输信息,例如计算机的名称。

如果可以,运行a SELECT * FROM v$session WHERE sid = userenv('SID'),您将看到驱动程序显示的有关您环境的所有信息。

但是,您可能无法查询v $ session,因为它需要非标准权限。


1

您是否使用LDAP服务器来验证登录名(例如Microsoft Active Directory,Novell eDirectory等)?Oracle可以根据您的建议,根据您的OS会话登录信息来询问您的真实姓名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.