本文为您介绍如何创建自建 MySQL 数据库实例的用户,以及该用户在数据迁移各阶段需要具备的最小权限。
背景信息
自建 MySQL 数据库实例的类型包括 VPC 内自建数据库 和 公网 IP 自建数据库。本文创建的自建数据库用户,用于创建自建数据库实例类型的 MySQL 数据源时填写 用户名。
创建自建数据库用户
在创建 MySQL 数据源时,您可以直接选择已经存在于数据库的用户作为数据迁移的用户。建议您为数据迁移任务创建专属的数据库用户并赋予必要的权限。
登录 MySQL 数据库。
使用
CREATE USER
语句创建一个新用户。CREATE USER '<user_name>'@'<host_name>' IDENTIFIED BY '<user_password>';
参数
描述
user_name
待创建的用户。
host_name
允许该用户登录的主机。如果允许该用户从任意主机登录数据库,请使用百分号(%)。
user_password
待创建用户的密码。
例如,创建一个名为
test
的用户,该用户可以从任何主机登录 MySQL 数据库,登录密码设置为password
。CREATE USER 'test'@'%' IDENTIFIED BY 'password';
MySQL 数据库作为源端的权限说明
数据库用户需要对待迁移的数据库具备读权限。如果是 MySQL 数据库 V8.0,请额外赋予
SHOW VIEW
权限。GRANT SELECT ON <database_name>.* TO '<user_name>';
MySQL 数据库增量同步时,数据库用户需要具备
REPLICATION CLIENT
、REPLICATION SLAVE
和SELECT *.*
权限。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION];GRANT SELECT ON *.* TO '<user_name>';
说明增量同步时,如果缺少源端所有表的读权限,可能导致任务异常中断。
WITH GRANT OPTION
为可选参数。
MySQL 数据库作为目标端的权限说明
MySQL 数据库作为目标端时,迁移用户需要具备目标端数据库的CREATE
、CREATE VIEW
、INSERT
、UPDATE
和DELETE
权限。
GRANT <privilege_type> ON <database_name>.<table_name> TO '<user_name>'@'<host_name>' [WITH GRANT OPTION];
参数 | 描述 |
privilege_type | 授予该账号 |
database_name | 数据库的名称。如果要授予该账号具备所有数据库的操作权限,请使用星号(*)。 |
table_name | 表的名称。如果要授予该账号具备所有表的操作权限,请使用星号(*)。 |
user_name | 待授权的账号。 |
host_name | 允许该账号登录的主机,如果允许该账号从任意主机登录,请使用百分号(%)。 |
WITH GRANT OPTION | 授予该账号使用 |