有点不重要,但它激起了我的好奇心。
我刚刚使用 Oracle SQL Developer Tools 第一次登录到 Oracle 10g 数据库。
我使用了一个不是我名字的通用用户登录名(nottstest2),来自一台被称为不是我名字的东西(courgette)的机器。我的名字不在数据库中,并且与登录名无关。
然而,服务器日志显示来自“Jon Hopkins”的连接。
它怎么知道我是谁?它是否以某种方式从我的 Windows 登录中提取(尽管我没有使用单点登录)?
有点不重要,但它激起了我的好奇心。
我刚刚使用 Oracle SQL Developer Tools 第一次登录到 Oracle 10g 数据库。
我使用了一个不是我名字的通用用户登录名(nottstest2),来自一台被称为不是我名字的东西(courgette)的机器。我的名字不在数据库中,并且与登录名无关。
然而,服务器日志显示来自“Jon Hopkins”的连接。
它怎么知道我是谁?它是否以某种方式从我的 Windows 登录中提取(尽管我没有使用单点登录)?
你如何登录
courgette
?该用户名会识别您吗?您可以通过运行来检查
USERENV 命名空间可以检索有关用户及其环境的许多不同信息。 了解更多。
Oracle 客户端(又名驱动程序)知道您在操作系统中的身份(因为该代码在您的计算机上运行)。
此信息作为登录过程的一部分传输。
根据您的应用程序和驱动程序类型(OCI/JDBC),它甚至可以传输您的计算机名称等信息。
如果可以,运行 a
SELECT * FROM v$session WHERE sid = userenv('SID')
,您将看到驱动程序显示的有关您的环境的所有信息。您可能无法查询 v$session,因为它需要非标准权限。
您是否使用 LDAP 服务器来验证登录(例如 Microsoft Active Directory、Nove eDirectory 等)?Oracle 可以根据您的建议,根据您的操作系统会话登录来询问您的真实姓名。