• 请不要在回答技术问题时复制粘贴 AI 生成的内容
czwen1993
V2EX  ›  程序员

数据库密码,审计要求,要定期更改,程序怎么可以适应?

  •  
  •   czwen1993 · Sep 10, 2020 · 4721 views
    This topic created in 2250 days ago, the information mentioned may be changed or developed.
    框架:
    Spring Boot,alibaba druid

    期望效果:
    用户改完数据库密码,程序不用改配置,最好也不用重新启动

    思路:
    1. 使用 nacos,但增加工作量,,(不赚钱的项目,,)
    2. 数据配置文件使用远程文件,用户改完密码,顺手改一下配置文件,顺手重新启动一下?
    3. 传统做法

    请教还有什么好的做法吗?
    Supplement 1  ·  Sep 10, 2020
    总结一下,做这事配置中心靠谱
    18 replies  •  2020-09-11 17:19:20 +08:00
    passerbytiny
    passerbytiny
    Sep 10, 2020 via Android
    1
    如果要求 100 %数据完整性,除了重启或临时下线,别无它法。数据库是最底层的东西,想做热重载不是一般的难。
    passerbytiny
    passerbytiny
    Sep 10, 2020 via Android
    2
    补充一下,是无缝热重载不好做,不重启但是数据库下线再上线(期间所有与数据库相关的功能,要么等待新事务开启,要么超时,要么回滚)还是很好做的。
    passerbytiny
    passerbytiny
    Sep 10, 2020 via Android
    3
    不赚钱的项目,就弄个脚本让改密码的人在改密码后手动执行一下吧。

    spring 体系中要想刷新配置,需要上 spring cloud config,管理起来还是很麻烦的。
    limuyan44
    limuyan44
    Sep 10, 2020
    4
    通常遇到这种什么不想做的但是什么都想要的,我都会拿起 shell 一把梭,整个定时半夜 12 点改密码写配置起服务。
    itskingname
    itskingname
    Sep 10, 2020❤️1
    5
    这个时候就显示出 sprint boot 的不灵活了。

    我用 Apollo 做配置中间。用 fastapi 做后端。发现配置改了,可以直接动态修改连接对象。
    justfindu
    justfindu
    Sep 10, 2020
    6
    你给他一个操作接口, 接口内进行 shell 操作并进行应用数据库密码更改... 是不是有些危险.
    smallfish1990
    smallfish1990
    Sep 10, 2020❤️2
    7
    讲一个上家公司的方案:

    ( 1 )数据库做 2 套账户,错开定期修改;
    ( 2 )应用层走负载,一套一套修改,用户无感
    ( 3 )改密、负载切换都是走 devops 的,现场运维对密码都不可知
    594duck
    594duck
    Sep 10, 2020
    8
    @itskingname 老哥这个回答靠谱的,走配置中心是最方便的。


    另外,如果是半年一次的话其实可以走 maintenance time 的。哪怕是 Google SRE 都推荐要做做重启动作来熟悉感觉。
    bk201
    bk201
    Sep 10, 2020
    9
    配置中心?
    zlowly
    zlowly
    Sep 10, 2020
    10
    肯花钱的话,有专门商业化的账号安全管理系统可以干这些事情。
    wangdashuai
    wangdashuai
    Sep 10, 2020
    11
    可以在 mysql 和应用中间加一层,屏蔽密码认证。
    iColdCat
    iColdCat
    Sep 10, 2020❤️1
    12
    不知道 xxl conf 能不能解
    buaacss
    buaacss
    Sep 10, 2020 via iPhone❤️1
    13
    两套账号,要改密的时候,ops 生成新密码,创建 temp 账号,同时更新 k8s 里的 temp secret,重新部署后使用临时密钥,改之前的线上密钥,再更新 online secret 最后再部署一次,删除临时 secret,开发都不知道这玩意儿换过了。ansible 改环境变量也差不多
    czwen1993
    czwen1993
    OP
    Sep 10, 2020
    14
    @buaacss 还没到这么高级的阶段🤣
    czwen1993
    czwen1993
    OP
    Sep 10, 2020
    15
    @zlowly 不肯。。哈哈哈哈
    czwen1993
    czwen1993
    OP
    Sep 10, 2020
    16
    @justfindu 这,,客户有这个想法
    intmax2147483647
    intmax2147483647
    Sep 11, 2020
    17
    好愚蠢的要求
    LemonCoo1
    LemonCoo1
    Sep 11, 2020
    18
    https://blog.csdn.net/jackson_hou03/article/details/106408666
    可以集成配置中心,比如 nacos apollo 等,自己实现刷新数据源。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   520 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 20:08 · PVG 04:08 · LAX 12:08 · JFK 15:08
    ♥ Do have faith in what you're doing.