其实我们用的是yearning来管理 MySQL 数据库变更需求的,但是,类似 Oracle 或者 PolarDB,就用不成了。
这事只能交给阿里云的dms来管理了,其实dms要比yearning强大很多,可以精确控制到表的行级别权限的。
理由就是dms是个web页面,代理连接到后端的数据库,所以要显示什么,不要显示什么,从web界面是完全可以控制的。实际到数据库级别反而有的是控制不住的。
这就梳理一下建立审批流的步骤:
一、dms同步ram用户
ram用户是管理的基础了,这些用户必须先行导入dms,我们才能进一步赋予owner,DBA的权限
用户管理–>同步子账号,选择要dms要使用的账号同步过来即可
二、设定实例DBA
DMS里的权限是这样的:库的话有Owner,然后实例的话有DBA,最上是管理员。
那么一个实例里有几万张表,没人会想一个一个点击赋Owner的权限吧。
那就粗分一下,一个人对整个实例有权限审批即可。这样要先设定整个实例的DBA角色。
我们先编辑用户,让他有DBA的角色,以供之后在实例级别可以选择他
然后去实例管理里面:
选择实例的右边,更多–>编辑实例
实例的账号、密码、安全协同、安全规则都选上,然后高级信息里,实例DBA就可以选择刚才设置了DBA角色的人了
三、设置审批流程
然后去安全与规范,审批流程,新增审批模板,来自定义审批流
我们公司的审批流不是380缺省那个,380是需要三个人审批的:
我们的链路就很建单了,有操作权限的人找实例的DBA审批,然后过最高管理员批就完了,所以做如下的流程:
四、设置安全规则
我们再到安全与规范,点击安全规则,找到具体实例里设置的 强管控模式 for MySQL
可以看到已经有2个实例用上了,然后到右边,点击编辑:
最主要的就是SQL变更,数据变更默认审批模板的设置,我们改成我们自己的审批流即可
其他的选项都可以按需进行修改。
五、设置用户权限
如上审批流就完成了,我们要登录具体的实例列表,再更多里设置权限
注意上面是设置的实例级别的权限。
如果要设置更细级别的库、表、行权限,需要点击数据库列表
在这里面的表详情的右边更多,可以控制库、表、行的权限
这样就可以弄完整个流程了。