2017-01-12 12 views
0

У меня есть Java webapp (WAR), который должен запускаться в JBOSS.Как установить источник данных JBOSS в базу данных Oracle, используя другую схему для той, которая используется для аутентификации

Этот webapp должен создавать соединения с базой данных Oracle, используя имя пользователя/пароль для пользователя, которому предоставляются разрешения только для чтения.

Webapp запрашивает таблицы, принадлежащие другой схеме. Я делаю это, отбирая каждое имя таблицы в моих SQL-запросах.

Однако я хотел бы параметризовать это в моем источнике данных, поскольку имена схем могут быть разными в разных средах.

Есть ли способ определить источник данных JBOSS, который регистрируется как пользователь A для каждого соединения, но использует схему B для всех запросов?

ответ

2

Один из способов сделать это является использование new-connection-sql или check-valid-connection-sqldatasource properties выполнить ALTER SESSION SET CURRENT_SCHEMA=yourschema, который изменит схему по умолчанию для каждого соединения.

0

Рекомендованный способ - создать синонимы в Oracle для вашего пользователя A для доступа к таблицам в схеме, принадлежащей Пользователю B. Таким образом, вы можете даже предоставить определенные права пользователю A для выбора, обновления, вставки в таблицы, принадлежащие другому UserB ,