Oracle 如何知道我是谁?

Jon*_*ins 12 oracle oracle-sql-developer

有点不重要,但它激起了我的好奇心。

我刚刚使用 Oracle SQL Developer Tools 第一次登录到 Oracle 10g 数据库。

我使用了一个不是我的名字(nottstest2)的通用用户登录名,来自一台被称为不是我的名字(西葫芦)的机器。我的名字在数据库中无处可见,也与登录无关。

然而,服务器日志显示来自“Jon Hopkins”的连接。

它怎么知道我是谁?它是否以某种方式从我的 Windows 登录中提取(尽管我没有使用单点登录)?

APC*_*APC 15

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

您可以通过运行来检查

select sys_context('userenv', 'os_user') 
from dual;
Run Code Online (Sandbox Code Playgroud)

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


a_h*_*ame 6

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

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

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

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

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