在 Oracle 中识别 windows 用户

Posted

技术标签:

【中文标题】在 Oracle 中识别 windows 用户【英文标题】:Identifiying windows users in Oracle 【发布时间】:2011-04-14 09:33:23 【问题描述】:

我正在尝试识别进入 Oracle 的传入用户,以便根据他们的身份 (FGAC) 授予他们访问权限。用户位于不同的域中。这意味着它们可能具有相同的系统用户名(windows 用户名)。

我一直在尝试使用环境上下文变量 sys_context('userenv', 'var') 来获取域名(例如 SYS_CONTEXT('USERENV','HOST') 和 SYS_CONTEXT('USERENV' ,'OS_USER')) 但我似乎得到不同的结果取决于连接方法。

我可以探索其他任何获取用户真实身份的方法吗?

【问题讨论】:

您能否详细说明您获得的不同结果以及您正在试验的不同连接方法?您是否通过三层应用程序连接?或者你是直接从客户端机器连接到数据库,在这种情况下我不确定你在考虑什么不同的连接方法。 我主要使用 SQLNet 和 ODAC (devart.com/odac) 连接到数据库。当我使用 SQLNet 时:SYS_CONTEXT('USERENV','HOST') reurns "domain\username" 但使用 ODAC 我只得到 "username" 【参考方案1】:

我不确定您应该使用哪个变量,但您可能需要查看select * from v$session 来帮助您选择一个。

【讨论】:

我尝试使用 v$session 但结果同样不一致。我希望字段 OSUSER 和 MACHINE 会给出期望的结果,但正如您从下面的列表中看到的那样,结果取决于连接的程序。 #操作系统用户||机器 ||程序 #CENTER1\andrjesg ||中心1\WIS0968 || Kria.exe #steinarth ||智慧51 || JDBC 瘦客户端 #CENTER1\andrjesg ||中心1\WIS0968 || sqlnavigator.exe #andrjesg ||中心1\WIS0968 || Kria-ODAC.exe 希望表格列表对您有意义,字段之间的两个竖线和一个新记录的 #:)【参考方案2】:

如果您将 FGAC 基于 OS_USER 环境变量,那么您实际上并没有保护数据。 OS_USER 不是传递给 Oracle 的凭据,它只是一个可以被攻击者操纵的字符串。

【讨论】:

以上是关于在 Oracle 中识别 windows 用户的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap 条码扫描仪无法识别 windows phone 上的任何条码

在windows平台上怎么启用Oracle database 企业版的partition?

oracle 10g能够装在windows 2008上面吗

Oracle 用户与模式的关系

联想人脸识别如何不开机启动

桌面云组件中哪个是提供登录虚拟桌面