系统出了故障,供应商的工程师发来一句把数据库账号给我看一下,我定位下问题。这时候直接甩一个管理员账号过去,等于把整个测评库的读写和导出权限都交了出去。更稳妥的做法,是给他开一个限时只读的临时通道——够排障用,又不让他能把数据搬走。
限时只读到底限什么
限时只读拆开看是三件事叠在一起:只读、限时、不给导出。只读是权限维度,工程师能查能看,但不能改数据、不能删记录;限时是时间维度,这个权限到点自动失效,不用等人记得回收;不给导出是出口维度,能在界面或日志里看到数据,却不能批量下载、导出成文件带走。三者缺一都不算真正安全:只读不限时,权限会一直挂着;限时不限导出,他在有效期内照样能把库拖走一份。
为什么排障不需要导出权限
排障要的是看到现场,不是拿走数据。工程师定位问题,通常需要看某条报错记录、某个字段的取值、某段时间的日志,这些在只读界面里都能查到。真正的导出——把成千上万条测评记录打成一个文件——和定位单个故障没有关系,却是数据外泄风险最高的动作。把查看和导出分成两种权限,让临时账号只有前者,是排障场景最该守住的一条线。只读界面里,涉及个人身份的敏感字段还可以做脱敏展示,工程师看得到结构和异常,却看不到具体是谁的答卷,排障和隐私两头都顾得上。
时限和范围都要收窄
限时只读还得在两个方向上收紧。时间上,按这次排障预计需要的时长授权,几小时或一两天,到期自动关闭,而不是开一个无限期的口子;范围上,尽量只放开和故障相关的那部分数据,能限定到某个模块、某段时间就不要全库开放。橙星云在给外部工程师开临时排障权限时,就是按最小必要来配:只读、带有效期、圈定数据范围、关闭导出,权限到点自动收回,不依赖人工记得撤销;收回之后最好再顺手确认这个临时账号没在别处留下长期有效的令牌或缓存登录。
别忘了留痕
临时权限最容易被忽略的一环是审计。这个临时账号在有效期里查过哪些数据、看了哪些人的记录,都要完整留痕、事后可查。留痕有两个作用:一是万一真出了数据问题,能倒查是谁、在什么时候碰过;二是它本身就是一种约束——工程师知道每一次访问都被记录,越界的动作自然会收敛。给外部人员开权限,能追溯和能限制同样重要:只读和限时管住了能做什么,留痕管住了做过之后赖不掉。
