
数据泄露的风险往往来自于权限过大。应用账户拥有整个数据库的权限,一旦有注入或者配置泄露的情况发生,那么攻击面就是整个实例。
账户根据用途进行划分。读写账户只有业务库的增删改查权限,报表账户只能查看指定的视图,运维账户独立管理,并且限制来源地址,应用不能直接以管理员身份登录。
授权粒度为表、列级别。对于手机号、身份证号等敏感信息,非必要的账户不能进行查询操作,可以通过视图的方式进行脱敏处理;不允许给文件读写和批量导入权限,降低数据被整体导出的可能性。
权限变更时要留有痕迹。所有的授权和收回都是通过工单来完成的,记录了申请人、用途以及有效期,临时权限到期会自动失效。定期导出权限清单,和实际的运用情况进行对比,把长时间没有登录的账号清除掉。
审计日志单独存放,不与业务数据库一起部署,防止日志被一起删除。账号密码要定期更换,在轮换期间失败的登录也会被记录下来,频繁出现的认证尝试往往早于数据泄露发生。
一次性申请临时权限,使用完毕后马上收回。数据导出、批量修改等高风险操作,只能在指定的时间段内进行,执行之后要检查受影响的行数,异常情况当天排查。