更新时间:2024-04-15 GMT+08:00

目标数据库用户权限是否足够

MySQL迁移场景

表1 目标数据库用户权限是否足够

预检查项

目标数据库用户权限是否足够。

描述

检查用户提供的目标数据库账号权限是否符合迁移要求,如果权限不够,会导致迁移失败。

不通过提示处理建议

不通过原因:目标数据库的用户账号权限不够,需要具备SELECT、CREATE、DROP、DELETE、INSERT、UPDATE、INDEX、EVENT、CREATE VIEW、CREATE ROUTINE、TRIGGER、WITH GRANT OPTION这些权限。当目标库为是8.0.14-8.0.18版本,还需要SESSION_VARIABLES_ADMIN权限。

处理建议:查看提供的目标库账号权限是否符合迁移要求。

不通过原因:用户基本权限不足。

处理建议:查看对应数据库账号权限是否符合迁移要求。

PostgreSQL同步场景

表2 目标数据库用户权限是否足够

预检查项

目标数据库用户权限是否足够。

描述

按照需要同步对象的范围,授予不同的权限,有不同的要求。

  • 库级同步对象

    CREATEDB权限,同步账户为root或root的成员(仅特殊场景需要,详见下面说明)。

  • 表级同步对象

    如果要同步库:CREATEDB权限。

    如果要同步模式:模式所在库的CONNECT权限、模式所在库上的CREATE权限。

    如果要同步模式下的对象:模式所在库的CONNECT权限、对象所在模式的USAGE权限、对象所在模式上的CREATE权限。

  • 同步用户:CREATEROLE权限。
  • 同步对象权限:同步账户的default privilege为系统默认值(否则可能导致目标库对象权限与源库不一致)。

不通过提示处理建议

不通过原因:填写的目标数据库用户权限不足,需要具备CREATEDB权限。

处理建议:在目标数据库执行如下语句,赋予迁移账号CREATEDB权限。

alter role username with createdb;

不通过原因:用户没有SCHEMA的USAGE权限。

处理建议:在目标数据库执行如下语句,赋予迁移账号CREATEDB权限。

grant usage on schema schemaname to username;

不通过原因:用户没有创建TABLE的权限。

处理建议:在目标数据库执行如下语句,赋予迁移账号创建TABLE权限。

grant create on schema schemaname to username;

不通过原因:用户没有创建SCHEMA的权限。

处理建议:在目标数据库执行如下语句,赋予迁移账号创建SCHEMA的权限。

grant create on database to username;