drs要求的mysql权限有哪些-九游平台
drs在迁移、同步、灾备过程中,对账号有一定的权限要求,本章节主要介绍mysql引擎的权限要求。
权限要求
- 源和目标库的连接账号需要具有登录权限,如果没有该账号,可以通过如下方式创建,以user1为例。
参考语句:create user 'user1'@'host' identified by 'password';
- drs的实时迁移、实时同步、实时灾备功能的权限要求,中以user1为例提供参考语句。
表1 权限要求及参考语句 功能模块
源/业务数据库
目标/灾备数据库
实时迁移
全量迁移权限要求:
select、show view、event。
参考语句:grant select, show view, event on *.* to 'user1';
全量 增量迁移权限要求:
select、show view、event、lock tables、replication slave、replication client。
- 其中,replication slave、replication client是全局权限,必须单独开启。参考语句如下:
grant replication slave, replication client on *.* to 'user1';
- select、show view、event、lock tables是非全局权限,参考语句如下:
grant select, show view, event, lock tables on [待迁移数据库].* to 'user1';
- 当业务数据库为8.0.2以上版本时,还需要有xa_recover_admin权限。
全量迁移权限要求:
select、create、alter、drop、delete、insert、update、index、event、create view、create routine、trigger、references、with grant option。当目标库为8.0.14-8.0.18版本时,还需要有session_variables_admin权限。
参考语句:grant select, create, alter, drop, delete, insert, update, index, event, create view, create routine, trigger on *.* to 'user1' with grant option;
全量 增量迁移权限要求:
select、create、alter、drop、delete、insert、update、index、event、create view、create routine、trigger、references、with grant option。当目标库为8.0.14-8.0.18版本时,还需要有session_variables_admin权限。
参考语句:grant select, create, alter, drop, delete, insert, update, index, event, create view, create routine, trigger, references on [待迁移数据库].* to 'user1' with grant option;
实时同步
select、show view、event、lock tables、replication slave、replication client。全量 增量任务,当源数据库为8.0.2及以上版本时,还需要授予xa_recover_admin权限,以防启动或编辑时未提交的xa事务导致数据有损。
- 其中,replication slave、replication client是全局权限,必须单独开启。参考语句如下:
grant replication slave, replication client on *.* to 'user1';
- select、show view、event、lock tables是非全局权限,参考语句如下:
grant select, show view, event, lock tables on [待同步数据库].* to 'user1';
- 当业务数据库为8.0.2以上版本时,还需要有xa_recover_admin权限。
select、create、drop、delete、insert、update、alter、create view、create routine、references。
参考语句:grant select, create, drop, delete, insert, update, alter, references on [待同步数据库].* to 'user1';
实时灾备
select、create、alter、drop、delete、insert、update、trigger、references、show view、event、index、lock tables、create view、 create routine、 alter routine、 create user、reload、replication slave、replication client、with grant option,rds for mysql实例的root账户默认已具备上述权限。当业务数据库为8.0.14-8.0.18版本时,还需要有session_variables_admin权限。当业务数据库为8.0.2及以上版本时,还需要授予xa_recover_admin权限,以防启动时未提交的xa事务导致数据有损。rds for mysql实例的root账户默认已具备上述权限。
当业务数据库为8.0.2以上版本时,还需要有xa_recover_admin权限。
参考语句:grant select,create,alter,drop,delete,insert,update,trigger,show view,event,index,lock tables,create view,create routine,alter routine,create user,reload,replication slave,replication client on *.* to 'user1';
select、create、alter、drop、delete、insert、update、trigger、references、show view、event、index、lock tables、create view、 create routine、 alter routine、 create user、reload、replication slave、replication client、with grant option,rds for mysql实例的root账户默认已具备上述权限。当灾备数据库为8.0.14-8.0.18版本时,还需要有session_variables_admin权限。
参考语句:grant select,create,alter,drop,delete,insert,update,trigger,references,show view,event,index,lock tables,create view,create routine,alter routine,create user,reload,replication slave,replication client on *.* to 'user1'@'%' with grant option;
请在以上参考语句后执行flush privileges;使授权生效。
- 其中,replication slave、replication client是全局权限,必须单独开启。参考语句如下:
- 用户迁移权限要求
用户迁移时,如果源数据库为8.0版本,需要有mysql.user表的select权限;如果为5.7及以下版本,则需要mysql系统库的select权限,源数据库为阿里云数据库,则账户需要同时具有mysql.user和mysql.user_view的select权限。
参考语句:
grant select on mysql.user to 'user1'@'host' ;
grant select on mysql.* to 'user1'@'host' ;
grant select on mysql.user_view to 'user1';
目标数据库账号需要有所有库的select,insert,update,delete, with grant option权限。
参考语句:grant select, insert, update, delete on *.* to 'user1' with grant option;
- 函数、存储过程迁移权限要求
对于源数据库为mysql 5.6、5.7,如果您需要迁移函数、存储过程,则需要mysql系统库的proc表的select权限。
参考语句:
grant select on `mysql`.`proc` to 'user1'@'host';
对于源数据库为mysql 8.0以上版本的时候,如果您需要迁移函数、存储过程,则需要整个实例的select权限。对于mysql 8.0.20版本以上,也可以使用show_routine权限来迁移函数、存储过程。参考语句:
grant select on *.* to 'user1'@'host';
或者:
grant show_routine on *.* to 'user1'@'host';
参考资料:
drs迁移完成后,可通过数据对比功能查看迁移前后数据是否一致。
授权操作说明
- 创建用户
操作方式:
create user 'username'@'host' identified by 'password';
· username:待创建的账号。
· host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用%。
· password:账号的密码。
例如:授予drsmigration账号具备所有数据库和表的所有权限,并允许从任意主机登录数据库,命令如下。
create user 'drsmigration'@'%' identified by 'drs123456';
- 授予相应权限
操作方式:
grant privileges on databasename.tablename to 'username'@'host' with grant option;
flush privileges;
· privileges:授予该账号的操作权限,如select、insert、update等,如果要授予该账号所有权限,则使用all
· databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用*。
· tablename:表名。如果要授予该账号具备所有表的操作权限,则使用*。
· username:待授权的账号。
· host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用%。
· with grant option:授予该账号使用grant命令的权限,该参数为可选。
例如:创建一个账号,账号名为drsmigration,密码为drs123456,并允许从任意主机登录数据库,命令如下。
grant all on *.* to 'drsmigration'@'%';
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨