如何将JBOSS数据源设置为Oracle数据库,使用与用于身份验证的模式不同的模式

时间:2017-01-12 16:18:36

标签: oracle jboss datasource

我有一个在JBOSS中运行的Java webapp(WAR)。

该webapp是使用用户/密码为具有只读权限的用户创建与Oracle数据库的连接。

webapp查询属于不同架构的表。我通过在SQL查询中限定每个表名来实现此目的。

但是,我想在我的数据源中对此进行参数化,因为模式名称在不同的环境中可能会有所不同。

有没有办法定义一个JBOSS数据源,它以每个连接的用户A登录,但是对所有查询都使用Schema B?

2 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是使用new-connection-sqlcheck-valid-connection-sql datasource properties执行ALTER SESSION SET CURRENT_SCHEMA=yourschema,这将更改每个连接的默认架构。

答案 1 :(得分:0)

推荐的方法是在Oracle中为用户A创建同义词,以访问用户B拥有的模式中的表。这样,您甚至可以向用户A授予特定权限,以便在其他UserB拥有的表上进行选择,更新和插入。