我有一个在JBOSS中运行的Java webapp(WAR)。
该webapp是使用用户/密码为具有只读权限的用户创建与Oracle数据库的连接。
webapp查询属于不同架构的表。我通过在SQL查询中限定每个表名来实现此目的。
但是,我想在我的数据源中对此进行参数化,因为模式名称在不同的环境中可能会有所不同。
有没有办法定义一个JBOSS数据源,它以每个连接的用户A登录,但是对所有查询都使用Schema B?
答案 0 :(得分:2)
执行此操作的一种方法是使用new-connection-sql
或check-valid-connection-sql
datasource properties执行ALTER SESSION SET CURRENT_SCHEMA=yourschema
,这将更改每个连接的默认架构。
答案 1 :(得分:0)
推荐的方法是在Oracle中为用户A创建同义词,以访问用户B拥有的模式中的表。这样,您甚至可以向用户A授予特定权限,以便在其他UserB拥有的表上进行选择,更新和插入。