我是运维,最近上了个 sql 审核工具,可以审核 dml 和 ddl 语句,同时我们想逐步收回开发手中带有写权限的数据库账号,但是这些数据库的账号就算再怎么收回,也会在程序的配置文件中呈现,所以我就有点困惑了,各位大神是怎么解决这些权限问题的呢
1
sortbylist 2019-03-29 18:39:00 +08:00 via Android 1
上堡垒机
|
2
iamaprin 2019-03-29 18:42:33 +08:00 1
开发环境和生产环境分离,开发没有生产任何权限,配置文件使用开发环境数据库配置,互不影响。
|
3
9hills 2019-03-29 18:49:01 +08:00 1
其实很简单
1. MySQL 帐号可以配允许使用的主机,你只允许生产环境访问即可 2. 在生产环境增加审计,如果 RD 在生产环境连了数据库,发现就开除,公布出来就行了 技术解决不了的,就通过管理手段解决 |
4
THaGKI9 2019-03-29 19:44:15 +08:00 via iPhone 1
数据库连接配置可以通过一些配置中心获取,数据库可以只允许线上环境的机器连接
|
5
gzslw OP @sortbylist 堡垒机是针对服务器权限这块的吗?目前已经在考虑 jumpserver 了,从这点来看的话我们公司的审计这块约等于啥也没做。。。
|
6
sortbylist 2019-03-29 20:48:46 +08:00 1
@gzslw #5 堡垒机是为了审计,里面的操作都会留下日志,也算是权限了。
数据库的账号 1. 区分只读账号 /写权限账号 2. 写权限指定机器连接,比如堡垒机 3. 不同应用使用不同账号连接 4. 如果完全禁止开发使用写权限账号,不给堡垒机权限就行了,知道密码也没用。通过 sql 审核工具就好了。 总之核心思想就是写操作都要留下日志,方便追查。 到于写操作之前是否审核,就看你们人力是否够,不然 sql 审核估计也是够呛,而且也未必有必要。 |
8
gzslw OP @sortbylist 谢谢!主要是我们没有专门的 dba,加上我们运维也都是野路子,所以 sql 都是开发自己写。。。搞这个 sql 审计工具,也是为了让他们别捅出大漏子来。。。
|