使用池化连接时将客户机用户标识传递给Oracle

时间:2016-10-05 23:30:37

标签: oracle connection connection-pooling

我们公司有审计要求,以跟踪用户ID与应用程序的个人用户交互。我们将 Tomcat 7 与Tomcat连接池和 Oracle 11.2数据库(很快将为12c)一起使用。我们使用由JNDI管理的Type 4数据源在使用系统用户ID的服务器上进行连接。用户使用SSO登录Web应用程序。我们希望确保每当用户修改数据库记录时,在审计列中使用其SSO登录ID而不是系统ID来标识进行修改的人员。

我的研究表明,使用getClientInfosetClientInfo可能是要走的路,我想明确我将如何实现这一点。我会使用池化数据源Connection上的setClientInfo来设置客户端用户ID,还是运行Oracle存储过程DBMS_APPLICATION_INFO.SET_CLIENT_INFO来传递客户端用户ID?我知道在Oracle虚拟表v$session中有一个OSUSER列,用于保存此信息。我怎么去那里?我可以直接更新该列吗?

由于这是一个多线程应用程序服务器,我不希望最终出现一个同时发生的问题。

0 个答案:

没有答案