V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dzdh
V2EX  ›  问与答

怎么优雅的解决 员工对线上数据库的访问 考虑多实例、账号权限(只读)、及时创建和收回权限

  •  
  •   dzdh · 2022-03-09 09:23:33 +08:00 · 2032 次点击
    这是一个创建于 990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有啥系统啥的嘛

    或者有啥好用的中间件,支持数据库或 http auth 认证的那种的中间件 比如当个 mysql 实例使用,然后连接他输入用户名密码他会通过 http 请求指定某个 http 服务验证有没有权限访问啥的

    又或者有没有什么系统能实现这些需求(比如用过 yearning ,但是操作太麻烦了)

    查看库、表结构,查看数据(带脱敏功能)啥的

    几十台实例上万个数据库(是 database 不是 table)

    第 1 条附言  ·  2022-03-09 14:05:02 +08:00

    或者怎么自己开发一个...

    比如go吧 怎么接受 mysql 连接做认证 和 解析sql(只允许select开头的sql)

    然后在连接到指定的服务器实例:3306 用root登录进去执行。然后断开。

    17 条回复    2022-12-21 01:03:08 +08:00
    Reficul
        1
    Reficul  
       2022-03-09 09:56:32 +08:00
    LDAP
    LLaMA2
        2
    LLaMA2  
       2022-03-09 10:05:43 +08:00
    很多 ORM 都支持逆向生成实体。比如 spring Hibernat JPA 。js 的 TypeORM 。然后快速生成 restful 接口,1 天时间足够了,你只需要他自动生成的 CURD 而已
    LLaMA2
        3
    LLaMA2  
       2022-03-09 10:08:30 +08:00
    phpMyAdmin
    dzdh
        4
    dzdh  
    OP
       2022-03-09 12:42:16 +08:00
    @ye4tar 大数据量操作容易卡死。这点不如 navicat 呀。 还有内网数据库 必须要经过跳板机连的。phpmyadmin 一上是不是就直接公开了。加个统一的 basic ?加层 vpn ?加 vpn 本地网络还咋搞?不统一走 vpn 出网了
    dzdh
        5
    dzdh  
    OP
       2022-03-09 12:43:23 +08:00
    @Reficul 云数据库么的 ldap 插件
    FrankAdler
        6
    FrankAdler  
       2022-03-09 13:00:27 +08:00
    yearning 算是比较好用的了
    masterclock
        7
    masterclock  
       2022-03-09 13:09:34 +08:00
    hashicorp boundary ?
    LLaMA2
        8
    LLaMA2  
       2022-03-09 13:17:01 +08:00
    题外话,内网的机器可以使用跳板机部署 nginx 做反代。
    我还能让内网的服务器连上互联网更新系统呢,哈哈。
    你们是不是做托管的 IDC ,卖客户服务的。
    为什么有这种需求,线上的数据库为什么要让他们访问?
    dzdh
        9
    dzdh  
    OP
       2022-03-09 13:53:25 +08:00
    @ye4tar
    1. 知道跳板机的 ip ,却并不知道内网里的数据库的 host ,所以并没有什么影响。但是 nginx phpmyadmin 就.......
    2. 不再话题内
    3. 不是鸭
    4. saas 方案客户独库,自己人开发更新库查数据啥的要进数据库筛数据赛~
    dzdh
        10
    dzdh  
    OP
       2022-03-09 14:01:43 +08:00
    @masterclock

    有内味了,但是针对 mysql 怎么做到上万个库分布在不同物理实例 同时修改某个账号的可访问权限呢?
    masterclock
        11
    masterclock  
       2022-03-09 14:17:20 +08:00
    @dzdh 这么复杂么
    https://goteleport.com/ 是这个的活?
    dzdh
        12
    dzdh  
    OP
       2022-03-09 14:22:45 +08:00
    @masterclock 这玩意儿能直接暴漏出来个端口通过三方工具连接么 然后前提还是受他保护
    LLaMA2
        13
    LLaMA2  
       2022-03-09 14:24:09 +08:00
    spring data jpa 快速生成 api , 生成的时候屏蔽不必要的 api
    masterclock
        14
    masterclock  
       2022-03-09 14:56:10 +08:00
    @dzdh 可以选 tls 或者 端口模式
    tianzhou
        15
    tianzhou  
       2022-12-12 01:36:24 +08:00
    可以用 https://github.com/bytebase/bytebase ,一站式收口员工对于数据库的变更和查询。
    dzdh
        16
    dzdh  
    OP
       2022-12-12 09:13:18 +08:00
    @tianzhou 可以支持客户端吗。

    比如有些人用 heidisql 。有些人用 navicat 。直接使用客户端和自己的用户名访问 [guard] 。通过 [guard] 判定鉴权再使用内置账号链接对应数据库实例。

    现在用的是阿里云的解决方案。
    tianzhou
        17
    tianzhou  
       2022-12-21 01:03:08 +08:00
    @dzdh Bytebase 有自己的 SQL Editor ,可以覆盖这部分能力。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1080 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.