Я пытаюсь использовать Spring Boot с базой данных Oracle. Во время разработки мы использовали параметр hibernate spring.jpa.hibernate.ddl-auto = validate, но теперь, когда мы движемся к производственному выпуску, мы хотим заблокировать разрешения на подключение. Однако было бы неплохо сохранить проверку работоспособности, обеспечиваемую обработкой запуска проверки гибернации, даже в рабочем выпуске.
К сожалению, когда я пытаюсь сделать это с подключением к базе данных, имеющим достаточные привилегии для запуска Spring Загрузочное приложение, этап проверки гибернации завершается неудачно во время инициализации bean-компонента, поскольку он говорит, что таблицы отсутствуют. Теперь я знаю, что это не так, поэтому я держу пари, что hibernate использует дополнительные запросы для проверки схемы, и что эти запросы требуют дополнительного доступа. Если я установлю значение none, приложение будет работать, но не проверяет совместимость схемы. И если я предоставлю привилегию администратора базы данных для пользователя подключения, и все работает нормально, в том числе проверки. Но я определенно не собираюсь предоставлять этот уровень доступа из приложения в рабочей среде.
Итак, кто-нибудь знает наименьшие привилегии, которые я могу добавить к учетной записи пользователя, чтобы я мог включить проверку гибернации? В идеале я бы просто предоставил SELECT, INSERT, UPDATE и DELETE для таблиц и привилегию CONNECT для учетной записи пользователя, но этого недостаточно для включения проверки.
Я рассмотрел вопрос создания специальной автоматизированной c схемы переменная версии где-то и проверяет это во время выполнения, но это кажется грязным. Если бы я мог найти приемлемую комбинацию привилегий Oracle, которая позволяет выполнить этап проверки без слишком частого открытия соединения, я бы предпочел использовать этот подход.
Я также мог бы определить специальную работу на нашем сервере непрерывной интеграции. так что он временно включает все разрешения базы данных только для одного задания. Но я чувствую, что это подход кувалдой и он не выглядит элегантно.
Любые намеки с благодарностью получены.
Большое спасибо, Джонатан