Мы переносим наши секреты БД в хранилище Хашикорп. Springboot может подключаться к Vault и автоматически создавать роль в Postgres.
Когда я запускаю приложение в первый раз, настройки «ddl.auto» позволяют Springboot автоматически создавать таблицы в Postgres. Проблема в том, что у этих таблиц временный пользователь является владельцем таблицы в Postgre. Когда я перезапускаю приложение, новый пользователь не имеет разрешения на чтение из этой таблицы, даже если у него есть доступ к схеме.
Как настроить весеннюю загрузку с хранилищем для секретов БД и автоматических настроек ddl?
spring.cloud.vault:
fail-fast: true
uri: http://localhost:8200
authentication: APPROLE
app-role:
role-id: a1f62274-145c-3d10-dc8a-790a83995adc
secret-id: d5032c0f-a8f3-be23-531a-a444994ff5f5
generic:
enabled: false
database:
enabled: true
role: test-app-role
backend: database
username-property: spring.datasource.username
password-property: spring.datasource.password
spring:
jpa:
hibernate.ddl-auto: "update"
Exception
"Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'appListInitializer': Invocation of init method failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet","logger_name":"org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext","thread_name":"restartedMain","level":"WARN","level_value":30000}