[英]How can I set a JBOSS data source to an Oracle database use a different schema to the one used for authentication
I have a Java webapp (WAR) that is to be run in JBOSS. 我有一个要在JBOSS中运行的Java Webapp(WAR)。
That webapp is to create connections to an Oracle database using a username/password for a user that is given read-only permissions. 该webapp将使用具有只读权限的用户名/密码来创建与Oracle数据库的连接。
The webapp queries tables belonging to a different schema. webapp查询属于不同架构的表。 I do this by qualifying each table name in my SQL queries. 我通过限定SQL查询中的每个表名来做到这一点。
However, I would like to parameterise this in my datasource, since the schema names can be different in different environments. 但是,我想在我的数据源中对此进行参数化,因为架构名称在不同的环境中可以不同。
Is there a way to define a JBOSS data source which logs in as User A for each connection, but uses Schema B for all queries? 有没有一种方法可以定义一个JBOSS数据源,该数据源以每个连接的用户A身份登录,但使用模式B进行所有查询?
一种方法是使用new-connection-sql
或check-valid-connection-sql
数据源属性执行ALTER SESSION SET CURRENT_SCHEMA=yourschema
,这将更改每个连接的默认架构。
推荐的方法是在Oracle中为用户A创建同义词,以访问用户B拥有的架构中的表。通过这种方式,您甚至可以授予用户A特定的特权,以选择,更新,插入另一个UserB拥有的表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.