TiDB 数据源

本文为您介绍如何创建自建 TiDB 数据库实例的用户,以及该用户在数据迁移各阶段需要具备的最小权限。

背景信息

TiDB 数据库实例的类型包括 VPC 内自建数据库公网 IP 自建数据库。本文创建的数据库用户,用于创建 TiDB 数据源时填写 用户名

image

创建 TiDB 数据库用户

  1. 登录 TiDB 数据库。

  2. 使用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';
  3. 通过 GRANT 语句为创建的数据库用户授权。

TiDB 数据库作为源端的权限说明

  • 数据库用户需要对待迁移的数据库具备读权限。

    GRANT SELECT ON <database_name>.* TO '<user_name>';
  • TiDB 数据库增量同步时,数据库用户需要具备 REPLICATION CLIENTREPLICATION SLAVESELECT *.* 权限。

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION];
    GRANT SELECT ON *.* TO '<user_name>';

TiDB 数据库作为目标端的权限说明

迁移 TiDB 数据库的数据至 OceanBase 数据库 MySQL 兼容模式时,如果您选择了 反向增量,则迁移用户需要具备目标端 TiDB 数据库的 CREATECREATE VIEWINSERTUPDATEDELETE权限。

GRANT <privilege_type> ON <database_name>.<table_name> TO '<user_name>'@'<host_name>' [WITH GRANT OPTION];

参数

描述

privilege_type

授予该账号CREATEINSERTUPDATE等操作权限。如果需要授予该账号所有权限,请使用 ALL。

database_name

数据库的名称。如果要授予该账号具备所有数据库的操作权限,请使用星号(*)。

table_name

表的名称。如果要授予该账号具备所有表的操作权限,请使用星号(*)。

user_name

待授权的账号。

host_name

允许该账号登录的主机,如果允许该账号从任意主机登录,请使用百分号(%)。

WITH GRANT OPTION

授予该账号使用GRANT命令的权限,该参数为可选。