有什么办法让开发只负责开发,但无法更改生产环境的数据库的内容。 这种方式会有些什么副作用?
1 wangkun025 2023-05-30 16:18:50 +08:00 ![]() 开发是开发环境,生产环境的数据库是生产环境。这俩隔离没任何问题啊,而且本来就应该这么做啊。 |
2 lalawu 2023-05-30 16:19:08 +08:00 后续上线 troubleshotting 依赖数据可能会有比较大阻碍 |
![]() | 3 InDom 2023-05-30 16:20:20 +08:00 本来就应该是这样,完全才测试环境测完以后再发布,觉得不放心可以弄一个 拟真环境。 开发本来就不应该接触生产环节。 |
![]() | 5 lambdaq 2023-05-30 16:30:42 +08:00 正规公司其实都是这样搞的。但是往往由于业务复杂程度,很多线上配置比测试环境复杂得多。 如果不幸线上出了问题,你就自己玩蛋去吧。 |
![]() | 6 8355 2023-05-30 16:30:50 +08:00 生产环境不管代码还是数据 理论上只有运维能直接操作. 数据 dba 可以间接操作. 开发最多可以查查数据用于监控和 debug, 可能还只是个别人才有临时授权的. |
7 LandCruiser 2023-05-30 16:33:56 +08:00 数据脱敏就可以了啊,比如电话号码脱敏成 12345678910 不就行了。测试环境数据库如果字段和生产环境都对不上,那这不叫开发,这叫做法。 |
8 wangkun025 2023-05-30 16:34:39 +08:00 @lambdaq 相比起开发人员 rm -rf / ,你说的都不算很严重问题。 |
9 nitmali 2023-05-30 16:37:33 +08:00 开发环境 测试环境 生产环境隔离 前端 mock |
![]() | 10 vinciarts OP @LandCruiser 字段和逻辑肯定对上呀,不然都不算开发同一个产品了哈哈 |
12 LandCruiser 2023-05-30 16:44:49 +08:00 @vinciarts 那就脱敏一批数据做测试数据就好了,其他的就像楼上说的就行了。如果你们公司年收入 1 亿一下,其实完全没必要的。 |
13 lalawu 2023-05-30 16:45:39 +08:00 @vinciarts 我看了评论中的上下文补充信息;首先开发 /联调 /验收 /生产环境 数据应该分开;没有问题,生产环境数据本来就只该有用户的数据,不该有脏数据,但是假设生产环境出现异常情况,很大一部分要以数据以及日志作为线索。你问我,如果不能看到线上数据可能会有哪些问题,那就是排查过程少了一大帮助线索。 |
![]() | 14 bianhui 2023-05-30 16:52:01 +08:00 给开发分配只读的数据库账号。 |
![]() | 15 PHPer233 2023-05-30 16:54:00 +08:00 其实不怕看到数据,而是怕把数据带走。 建议备一台电脑,操作生产环境必须在指定地点、指定电脑上进行。 |
![]() | 16 my3157 2023-05-30 16:57:27 +08:00 via Android 招个运维 |
![]() | 17 shyrock 2023-05-30 17:01:01 +08:00 开发过程可以严格执行,用一套模拟的环境和数据。 但是上线后排错时,要不接触业务系统和数据就很难排错了。 |
![]() | 18 Felldeadbird 2023-05-30 17:02:22 +08:00 1. 数据库脱密 2. 找那些在线开发平台,可以提高代码保密性。 和楼上说的,找运维。 |
![]() | 19 kidult 2023-05-30 17:03:25 +08:00 求之不得,生产环境碰不到对开发来说是最好的,省去一大堆烦恼 |
![]() | 20 lambdaq 2023-05-30 17:06:45 +08:00 @wangkun025 你不让开发去处理,它们更可能 rm -rf |
21 MeteorCat 2023-05-30 17:14:28 +08:00 via Android 我觉得开发这样更加求之不得,因为生产环境业务更复杂而且运营总急着加功能要求立即上 |
![]() | 22 wu67 2023-05-30 17:24:12 +08:00 前端可以 mock. 后端不清楚. 事实上 mock 的数据甚至比他们瞎造的‘测试测试测试’ ‘这是一个小尾巴’ ‘我就看看能有多长长长长长长长长’ 这种测试数据要好用多了 |
23 wangkun025 2023-05-30 17:25:35 +08:00 @lambdaq 有个职位叫运维。运维有内部的管理和技术栈,去解决问题。 |
![]() | 24 lambdaq 2023-05-30 17:28:41 +08:00 @wangkun025 运维高风险岗位。哈哈。 |
![]() | 25 h1104350235 2023-05-30 17:30:09 +08:00 前端 mock 试过,有点坑 接口文档写的不够清晰,经常 mock 没问题,但是测试问题一大堆,字段可能返回 null ,undefined ,{},[],'’,直接字段不返回都有。dog |
26 penzi 2023-05-30 17:48:10 +08:00 副作用就是,中国企业玩不转这一套。 |
![]() | 27 fiypig 2023-05-30 17:54:25 +08:00 的确,生产环境不给我碰 我真的开心到跳脚 |
28 penzi 2023-05-30 17:55:50 +08:00 当然,政府项目,企业还是能捏着鼻子,在垃圾的隔离环境上做一坨垃圾的。 |
![]() | 29 vinciarts OP @wangkun025 如何防止运维跑路或者在代码里下毒(doge) |
30 wangkun025 2023-05-30 18:09:16 +08:00 @lambdaq 拿钱的事儿,干啥没风险呢 |
31 wangkun025 2023-05-30 18:10:15 +08:00 @vinciarts 我不是运维,你可以问问 chatGPT 。不过据我所知,虽然有发生这种事,但并不多。 |
![]() | 32 neptuno 2023-05-30 18:14:44 +08:00 理想情况下是应该数据隔离的,线上环境除了问题就很难排查问题了,可以管理好开发的账号权限,例如排查问题的时候,申请某个数据库的查询权限,离职的时候,关闭账号 |
![]() | 33 RivetCity 2023-05-30 18:55:36 +08:00 测试环境一比一模拟生产环境,数据变形后导入 |
34 yingqi7 2023-05-30 18:58:11 +08:00 生产数据脱敏变形后导入测试环境不就可以了 |
![]() | 36 LeegoYih 2023-05-30 20:30:41 +08:00 我们公司可以申请生产数据库的读权限,用于排查问题。需要修改数据要提工单走审核流程,leader 审批通过后会由 dba 确认执行。 有生产数据库的临时实例,每天都会生成一份昨天的快照,数据都是脱敏的,可以随便玩。 |
37 kuxuan 2023-05-30 21:21:18 +08:00 via Android 自己开发 |
![]() | 38 AstroProfundis 2023-05-30 21:30:00 +08:00 楼主你没说清楚具体是什么情况... 如果你的需求是不想让开发碰到线上数据比如什么客户信息之类的,正经开发流程里面应该是有个开发测试环境,和线上完全一样但数据是假的,不管是按相同格式造一批假数据还是把线上数据处理脱敏之后写到开发测试库都可以 如果你的需求是业务逻辑本身就涉及到了某些敏感信息,那没什么好办法,只能找足够信任的人来做,你要是有本事把系统拆成很多不涉密的小部分给不同人做肯定也不会来问了 如果你的需求是你不信任开发和运维,怕他们接触线上数据之后干坏事,和前一条一样,你只能找足够信任的人,要么签严格的保密条款并且加钱雇愿意接受这些条款的人,要么自己亲自上 |
![]() | 39 wdlth 2023-05-30 21:48:00 +08:00 很多公司都开发有 Web 版的数据库查询页面,有 SQL 审计,敏感字段脱敏等功能,如果不想自研的话你们也可以先装一个 Archery 暂时用用。 |
![]() | 40 yufeng0681 2023-05-30 21:49:16 +08:00 针对保密的要求,额外开发一系列功能; 比如: 1 、数据库数据加密 2 、用户行为日志(运维用户) 3 、基于定位问题的场景,开放的权限管理 4 、线下重现问题,需要数据库复制时, 保密字段的脱敏管理(还不能影响定位问题) |
![]() | 41 zhaokun 2023-05-31 08:04:51 +08:00 via iPhone 开发为啥能看到生产环境的数据库?生产环境数据库不给权限,他们怎么看到? 生产环境数据库加服务器 ip 白名单,业务代码链接用内网地址,生产环境服务器不给 ssh 账户,他们还想看就只能请求生产环境接口了,要防接口抓包就比较麻烦了 |
![]() | 42 SWALLOWW 2023-05-31 10:39:59 +08:00 测试,灰度,线上 |
![]() | 43 VictorJing94 2023-05-31 11:17:33 +08:00 弄个测试库 |
![]() | 44 Zy143L 2023-05-31 15:35:37 +08:00 via Android 你们提供一个测试数据库接口就行了啊 保证字段不变 |
![]() | 45 tianzhou 2023-06-06 01:44:18 +08:00 可以看一下我们做的 bytebase.com ,应该是能满足你提的需求。研发只能做变更,生产数据库不让访问,相关文档在 https://www.bytebase.com/docs/security/database-access-control 在微信里搜 bytebase ,也能找到我们的公众号。 |