本文为您介绍如何创建自建 TiDB 数据库实例的用户,以及该用户在数据迁移各阶段需要具备的最小权限。
背景信息
TiDB 数据库实例的类型包括 VPC 内自建数据库 和 公网 IP 自建数据库。本文创建的数据库用户,用于创建 TiDB 数据源时填写 用户名。

创建 TiDB 数据库用户
登录 TiDB 数据库。
使用
CREATE USER语句创建一个新用户。CREATE USER '<user_name>'@'<host_name>' IDENTIFIED BY '<user_password>';参数
描述
user_name
待创建的用户名称。
host_name
允许该用户登录的主机。如果允许该用户从任意主机登录数据库,请使用百分号(%)。
user_password
待创建用户的密码。
例如,创建一个名为
test的用户,该用户可以从任何主机登录 TiDB 数据库,登录密码设置为password。CREATE USER 'test'@'%' IDENTIFIED BY 'password';通过
GRANT语句为创建的数据库用户授权。
TiDB 数据库作为源端的权限说明
数据库用户需要对待迁移的数据库具备读权限。
GRANT SELECT ON <database_name>.* TO '<user_name>';TiDB 数据库增量同步时,数据库用户需要具备
REPLICATION CLIENT、REPLICATION SLAVE和SELECT *.*权限。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION]; GRANT SELECT ON *.* TO '<user_name>';
TiDB 数据库作为目标端的权限说明
迁移 TiDB 数据库的数据至 OceanBase 数据库 MySQL 兼容模式时,如果您选择了 反向增量,则迁移用户需要具备目标端 TiDB 数据库的 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 | 授予该账号使用 |