从Oracle PL/SQL获取原始操作系统用户名(模拟之前)
在Windows Server 2012中,我们使用模拟(更改上下文) 模拟之前,我的操作系统用户是“OriginalUser”,模拟之后,我的操作系统用户是“ImpersonatedUser” 要获取模拟操作系统用户“ImpersonatedUser”,我可以在Oracle SQL和PL/SQL中使用以下命令:从Oracle PL/SQL获取原始操作系统用户名(模拟之前),sql,plsql,oracle11g,impersonation,windows2012,Sql,Plsql,Oracle11g,Impersonation,Windows2012,在Windows Server 2012中,我们使用模拟(更改上下文) 模拟之前,我的操作系统用户是“OriginalUser”,模拟之后,我的操作系统用户是“ImpersonatedUser” 要获取模拟操作系统用户“ImpersonatedUser”,我可以在Oracle SQL和PL/SQL中使用以下命令: select sys_context( 'userenv','os_user') from dual; 我们希望通过触发器将操作系统用户“OriginalUser”记录到数据库中
select sys_context( 'userenv','os_user') from dual;
我们希望通过触发器将操作系统用户“OriginalUser”记录到数据库中
如何在Oracle PL/SQL中选择操作系统用户“OriginalUser”(而不是“ImpersonatedUser”)。操作系统用户(“操作系统用户”)是完全不可靠的,因为它是由客户端提供的,可以通过连接属性轻松更改。我想你想要的是
session\u user
和current\u user
——虽然我不确定你在谈论“模拟”时指的是哪一个功能——你到底是如何模拟另一个Oracle用户的?我有点不清楚。模拟的是操作系统用户,而不是Oracle用户。我想通过PL/SQL获取原始操作系统用户名。操作系统用户信息是客户端提供的,客户端可以为此发送任何信息。因此,您无法可靠地获取“当前”操作系统或“模拟”操作系统。OS\u USER
将为您提供“当前”操作系统用户,即模拟用户<代码>会话用户将为您提供Oracle用户。抱歉,没有办法获得“原始”操作系统用户。