在 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 上的任何条码