数据库密码,审计要求,要定期更改,程序怎么可以适应? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
不要在回答技术问题时复制粘贴 AI 生成的内容
czwen1993
V2EX    程序员

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

  •  
  •   czwen1993 2020-09-10 16:37:43 +08:00 3959 次点击
    这是一个创建于 1906 天前的主题,其中的信息可能已经有所发展或是发生改变。
    框架:
    Spring Boot,alibaba druid

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

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

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

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

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

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


    另外,如果是半年一次的话其实可以走 maintenance time 的。哪怕是 Google SRE 都推荐要做做重启动作来熟悉感觉。
    bk201
        9
    bk201  
       2020-09-10 17:32:14 +08:00
    配置中心?
    zlowly
        10
    zlowly  
       2020-09-10 17:36:06 +08:00
    肯花钱的话,有专门商业化的账号安全管理系统可以干这些事情。
    wangdashuai
        11
    wangdashuai  
       2020-09-10 18:32:19 +08:00
    可以在 mysql 和应用中间加一层,屏蔽密码认证。
    iColdCat
        12
    iColdCat  
       2020-09-10 20:20:33 +08:00   1
    不知道 xxl conf 能不能解
    buaacss
        13
    buaacss  
       2020-09-10 20:41:26 +08:00 via iPhone   1
    两套账号,要改密的时候,ops 生成新密码,创建 temp 账号,同时更新 k8s 里的 temp secret,重新部署后使用临时密钥,改之前的线上密钥,再更新 online secret 最后再部署一次,删除临时 secret,开发都不知道这玩意儿换过了。ansible 改环境变量也差不多
    czwen1993
        14
    czwen1993  
    OP
       2020-09-10 20:49:35 +08:00
    @buaacss 还没到这么高级的阶段
    czwen1993
        15
    czwen1993  
    OP
       2020-09-10 20:50:36 +08:00
    @zlowly 不肯。。哈哈哈哈
    czwen1993
        16
    czwen1993  
    OP
       2020-09-10 20:52:05 +08:00
    @justfindu 这,,客户有这个想法
    intmax2147483647
        17
    intmax2147483647  
       2020-09-11 14:55:55 +08:00
    好愚蠢的要求
    LemonCoo1
        18
    LemonCoo1  
       2020-09-11 17:19:20 +08:00
    https://blog.csdn.net/jackson_hou03/article/details/106408666
    可以集成配置中心,比如 nacos apollo 等,自己实现刷新数据源。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     821 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 22:19 PVG 06:19 LAX 14:19 JFK 17:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86