更新时间:2023-12-13 gmt 08:00

drs要求的mysql权限有哪些-凯发k8国际娱乐官网入口

drs在迁移、同步、灾备过程中,对账号有一定的权限要求,本章节主要介绍mysql引擎的权限要求。

权限要求

  • 源和目标库的连接账号需要具有登录权限,如果没有该账号,可以通过如下方式创建,以user1为例。

    参考语句:create user 'user1'@'host' identified by 'password';

  • drs的实时迁移、实时同步、实时灾备功能的权限要求,表1 权限要求中以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';

    全量迁移权限要求:

    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。

    • 其中,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';

    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权限。

    参考语句: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;使授权生效。

  • 用户迁移权限要求

    用户迁移时,如果源数据库为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';

    参考资料:

授权操作说明

  • 创建用户

    操作方式:

    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'@'%';

分享:

more

网站地图