在 JDBC 连接中更新自动更新的数据库密码 - Spring Boot

Posted

技术标签:

【中文标题】在 JDBC 连接中更新自动更新的数据库密码 - Spring Boot【英文标题】:Updating auto renewed DB password in JDBC connection - Spring Boot 【发布时间】:2019-11-16 02:18:22 【问题描述】:

我有一个运行 spring boot 微服务的奇怪用例,这些服务位于 openshift 集群中,我面临的问题是由于数据库密码更新策略。 该应用程序使用 JDBC 连接来访问 oracle 数据库,并在容器启动期间从本地库中检索数据库密码。问题是密码每 90 天更改一次。

应用程序使用 JDBC 连接池与数据库通信,服务预计会接收大量流量,因此会增加会话数。如果密码被更新,我在会话中间我们如何确保我们使用工作密码始终在 jdbc 连接池中运行查询

我们尝试了一些运行单独服务的方法,该服务将立即检索密码,而需要密码的消费者服务将简单地使用数据库服务中最后一个成功的密码,这是一种丑陋的实现。 尝试了多容器 pod 和 Auxillary pod 监听数据库更改,这也是一个蹩脚的想法。

核心问题是加载已经具有身份验证的JDBC连接池来建立连接并与数据库通信。那么在会话中间我们如何更新密码呢? 有什么想法吗?

【问题讨论】:

【参考方案1】:

我想您正在使用秘密存储(例如:Vault、AWS Secrets Manager 等)来获取密码。如果是这样,我认为你已经完成了一半。 查看@RefreshScope,您可以刷新 spring 上下文,它将获取新配置(密码)并重新创建一些 bean(数据源)。

【讨论】:

以上是关于在 JDBC 连接中更新自动更新的数据库密码 - Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

JDBC使用步骤过程是啥?

mysql jdbc连接器批量更新异常更新计数不如预期

jdbc数据库简要操作

phpadmin创建自动更新

数据库连接相关代码(随时更新)

java jdbc 删除数据库表中一列后不能用SQL语句在更新和查询表中其他数据了