vinciarts

出于项目保密需求,有没有能让前后端只开发,但不接触线上数据库的办法?

  •  
  •   vinciarts · May 30, 2023 · 5919 views
    This topic created in 1260 days ago, the information mentioned may be changed or developed.

    有什么办法让开发只负责开发,但无法更改生产环境的数据库的内容。 这种方式会有些什么副作用?

    47 replies  •  2023-06-30 10:48:37 +08:00
    wangkun025
    wangkun025
    May 30, 2023❤️2
    1
    开发是开发环境,生产环境的数据库是生产环境。这俩隔离没任何问题啊,而且本来就应该这么做啊。
    lalawu
    lalawu
    May 30, 2023
    2
    后续上线 troubleshotting 依赖数据可能会有比较大阻碍
    InDom
    InDom
    May 30, 2023
    3
    本来就应该是这样,完全才测试环境测完以后再发布,觉得不放心可以弄一个 拟真环境。

    开发本来就不应该接触生产环节。
    vinciarts
    vinciarts
    OP
    May 30, 2023
    4
    @lalawu 会有哪些问题??能展开说说吗
    tf2
    tf2
    May 30, 2023
    5
    正规公司其实都是这样搞的。但是往往由于业务复杂程度,很多线上配置比测试环境复杂得多。

    如果不幸线上出了问题,你就自己玩蛋去吧。
    8355
    8355
    May 30, 2023
    6
    生产环境不管代码还是数据 理论上只有运维能直接操作.
    数据 dba 可以间接操作.
    开发最多可以查查数据用于监控和 debug, 可能还只是个别人才有临时授权的.
    LandCruiser
    LandCruiser
    May 30, 2023
    7
    数据脱敏就可以了啊,比如电话号码脱敏成 12345678910 不就行了。测试环境数据库如果字段和生产环境都对不上,那这不叫开发,这叫做法。
    wangkun025
    wangkun025
    May 30, 2023
    8
    @lambdaq 相比起开发人员 rm -rf / ,你说的都不算很严重问题。
    nitmali
    nitmali
    May 30, 2023
    9
    开发环境 测试环境 生产环境隔离

    前端 mock
    vinciarts
    vinciarts
    OP
    May 30, 2023
    10
    @LandCruiser 字段和逻辑肯定对上呀,不然都不算开发同一个产品了哈哈
    vinciarts
    vinciarts
    OP
    May 30, 2023
    11
    @nitmali 前端 mock 可以和开发、测试环境联调吗,还是只调 API 比较好?
    LandCruiser
    LandCruiser
    May 30, 2023
    12
    @vinciarts 那就脱敏一批数据做测试数据就好了,其他的就像楼上说的就行了。如果你们公司年收入 1 亿一下,其实完全没必要的。
    lalawu
    lalawu
    May 30, 2023
    13
    @vinciarts 我看了评论中的上下文补充信息;首先开发 /联调 /验收 /生产环境 数据应该分开;没有问题,生产环境数据本来就只该有用户的数据,不该有脏数据,但是假设生产环境出现异常情况,很大一部分要以数据以及日志作为线索。你问我,如果不能看到线上数据可能会有哪些问题,那就是排查过程少了一大帮助线索。
    bianhui
    bianhui
    May 30, 2023
    14
    给开发分配只读的数据库账号。
    PHPer233
    PHPer233
    May 30, 2023
    15
    其实不怕看到数据,而是怕把数据带走。
    建议备一台电脑,操作生产环境必须在指定地点、指定电脑上进行。
    my3157
    my3157
    May 30, 2023 via Android
    16
    招个运维
    shyrock
    shyrock
    May 30, 2023
    17
    开发过程可以严格执行,用一套模拟的环境和数据。

    但是上线后排错时,要不接触业务系统和数据就很难排错了。
    Felldeadbird
    Felldeadbird
    May 30, 2023
    18
    1. 数据库脱密
    2. 找那些在线开发平台,可以提高代码保密性。

    和楼上说的,找运维。
    kidult
    kidult
    May 30, 2023
    19
    求之不得,生产环境碰不到对开发来说是最好的,省去一大堆烦恼
    tf2
    tf2
    May 30, 2023
    20
    @wangkun025 你不让开发去处理,它们更可能 rm -rf
    MeteorCat
    MeteorCat
    May 30, 2023 via Android
    21
    我觉得开发这样更加求之不得,因为生产环境业务更复杂而且运营总急着加功能要求立即上
    wu67
    wu67
    May 30, 2023
    22
    前端可以 mock. 后端不清楚.
    事实上 mock 的数据甚至比他们瞎造的‘测试测试测试’ ‘这是一个小尾巴’ ‘我就看看能有多长长长长长长长长’ 这种测试数据要好用多了
    wangkun025
    wangkun025
    May 30, 2023
    23
    @lambdaq 有个职位叫运维。运维有内部的管理和技术栈,去解决问题。
    tf2
    tf2
    May 30, 2023
    24
    @wangkun025 运维高风险岗位。哈哈。
    h1104350235
    h1104350235
    May 30, 2023
    25
    前端 mock 试过,有点坑
    接口文档写的不够清晰,经常 mock 没问题,但是测试问题一大堆,字段可能返回 null ,undefined ,{},[],'’,直接字段不返回都有。dog
    penzi
    penzi
    May 30, 2023
    26
    副作用就是,中国企业玩不转这一套。
    fiypig
    fiypig
    May 30, 2023
    27
    的确,生产环境不给我碰 我真的开心到跳脚
    penzi
    penzi
    May 30, 2023
    28
    当然,政府项目,企业还是能捏着鼻子,在垃圾的隔离环境上做一坨垃圾的。
    vinciarts
    vinciarts
    OP
    May 30, 2023
    29
    @wangkun025 如何防止运维跑路或者在代码里下毒(doge)
    wangkun025
    wangkun025
    May 30, 2023
    30
    @lambdaq 拿钱的事儿,干啥没风险呢
    wangkun025
    wangkun025
    May 30, 2023
    31
    @vinciarts 我不是运维,你可以问问 chatGPT 。不过据我所知,虽然有发生这种事,但并不多。
    neptuno
    neptuno
    May 30, 2023
    32
    理想情况下是应该数据隔离的,线上环境除了问题就很难排查问题了,可以管理好开发的账号权限,例如排查问题的时候,申请某个数据库的查询权限,离职的时候,关闭账号
    RivetCity
    RivetCity
    May 30, 2023
    33
    测试环境一比一模拟生产环境,数据变形后导入
    yingqi7
    yingqi7
    May 30, 2023
    34
    生产数据脱敏变形后导入测试环境不就可以了
    tomczhen
    tomczhen
    May 30, 2023 via Android
    35
    @vinciarts 谁都不信任的话,老板自己运维不就解决了。
    LeegoYih
    LeegoYih
    May 30, 2023
    36
    我们公司可以申请生产数据库的读权限,用于排查问题。需要修改数据要提工单走审核流程,leader 审批通过后会由 dba 确认执行。

    有生产数据库的临时实例,每天都会生成一份昨天的快照,数据都是脱敏的,可以随便玩。
    kuxuan
    kuxuan
    May 30, 2023 via Android
    37
    自己开发
    AstroProfundis
    AstroProfundis
    May 30, 2023
    38
    楼主你没说清楚具体是什么情况...

    如果你的需求是不想让开发碰到线上数据比如什么客户信息之类的,正经开发流程里面应该是有个开发测试环境,和线上完全一样但数据是假的,不管是按相同格式造一批假数据还是把线上数据处理脱敏之后写到开发测试库都可以

    如果你的需求是业务逻辑本身就涉及到了某些敏感信息,那没什么好办法,只能找足够信任的人来做,你要是有本事把系统拆成很多不涉密的小部分给不同人做肯定也不会来问了

    如果你的需求是你不信任开发和运维,怕他们接触线上数据之后干坏事,和前一条一样,你只能找足够信任的人,要么签严格的保密条款并且加钱雇愿意接受这些条款的人,要么自己亲自上
    wdlth
    wdlth
    May 30, 2023
    39
    很多公司都开发有 Web 版的数据库查询页面,有 SQL 审计,敏感字段脱敏等功能,如果不想自研的话你们也可以先装一个 Archery 暂时用用。
    yufeng0681
    yufeng0681
    May 30, 2023
    40
    针对保密的要求,额外开发一系列功能;
    比如:
    1 、数据库数据加密
    2 、用户行为日志(运维用户)
    3 、基于定位问题的场景,开放的权限管理
    4 、线下重现问题,需要数据库复制时, 保密字段的脱敏管理(还不能影响定位问题)
    zhaokun
    zhaokun
    May 31, 2023 via iPhone
    41
    开发为啥能看到生产环境的数据库?生产环境数据库不给权限,他们怎么看到?
    生产环境数据库加服务器 ip 白名单,业务代码链接用内网地址,生产环境服务器不给 ssh 账户,他们还想看就只能请求生产环境接口了,要防接口抓包就比较麻烦了
    SWALLOWW
    SWALLOWW
    May 31, 2023
    42
    测试,灰度,线上
    VictorJing94
    VictorJing94
    May 31, 2023
    43
    弄个测试库
    Zy143L
    Zy143L
    May 31, 2023 via Android
    44
    你们提供一个测试数据库接口就行了啊
    保证字段不变
    tianzhou
    tianzhou
    PRO
    Jun 6, 2023
    45
    可以看一下我们做的 bytebase.com ,应该是能满足你提的需求。研发只能做变更,生产数据库不让访问,相关文档在 https://www.bytebase.com/docs/security/database-access-control


    在微信里搜 bytebase ,也能找到我们的公众号。
    vinciarts
    vinciarts
    OP
    Jun 6, 2023
    46
    @tianzhou 有海外版吗
    tianzhou
    tianzhou
    PRO
    Jun 30, 2023
    47
    @vinciarts 产品就是面向全球的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2261 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 13:52 · PVG 21:52 · LAX 05:52 · JFK 08:52
    ♥ Do have faith in what you're doing.