Я бы подошел к этому следующим образом:
Для начала ознакомьтесь с основами аутентификации через прокси. Эта статья выглядит многообещающе: https://blogs.oracle.com/olaf/entry/using_oracle_proxy_authenticat
Предполагая, что у вас есть Webapplication (или что-то еще с одной точкой входа), создайте Фильтр, который принимает запрос, идентифицирует пользователя, устанавливает пользователя в базе данных с использованием прокси-аутентификации, а затем направляет запрос.
Таким образом, ваше приложение будет видеть только правильные соединения с правильным пользователем, установленным. Так что ваша конфигурация Hibernate не должна зависеть от этого.
Одно предупреждение: вы, вероятно, используете пулы соединений. Эти пулы могут передавать не реализацию JDBC в Oracle, а оболочку, с помощью которой вы должны получить доступ к необходимым функциям Oracle. Убедитесь, что ваше приложение все еще использует оболочку, в противном случае пул соединений не заметит никаких исключений, генерируемых соединением, тем самым не распознает разорванные соединения и будет передавать их снова и снова.