Updated on 2022-08-16 GMT+08:00

Checking Whether the Source Database User Has Sufficient Permissions

MySQL Migration

Table 1 Checking whether the source database user has sufficient permissions

Check Item

Whether the source database user has sufficient permissions

Description

The source database user must have the required permissions.

  • In a full migration, the source database user must have the SELECT, SHOW VIEW, and EVENT permissions.
  • In an incremental migration, the source database user must have the following permissions: SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE, and REPLICATION CLIENT.

If the permissions are insufficient, the migration will fail.

Failure Cause and Handling Suggestion

Failure cause: In a full migration, the source database user must have the SELECT, SHOW VIEW, and EVENT permissions.

Handling suggestions: Grant the source database user the corresponding permissions.

Failure cause: In an incremental migration, the source database user must have the following permissions: SELECT, SHOW VIEW, EVENT, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, In the DR scenario, the following permissions are required: CREATE, ALTER, DROP, DELETE, INSERT, UPDATE, and INDEX.

Handling suggestions: Grant the source database user the corresponding permissions.

Failure cause: Insufficient user permissions

Handling suggestion: Check whether the database user permissions meet the migration requirements.

NOTE:

Failure cause: An internal error occurs.

Handling suggestion: Contact technical support.

PostgreSQL Synchronization

Table 2 Checking whether the source database user has sufficient permissions

Check Item

Whether the source database user has sufficient permissions

Description

Different types of synchronization tasks require different permissions.

  • Full synchornization: The CONNECT permission for databases, the USAGE permission for schemas, the SELECT permission for tables, the SELECT permission for sequences, and the SELECT permission for system table catalog pg_catalog.pg_authid (used for synchronizing user passwords)
  • Full+incremental synchronization: The CONNECT permission for databases, the USAGE permission for schemas, the SELECT permission for tables, the SELECT permission for sequences, the SELECT permission for system table pg_catalog.pg_authid (used for synchronizing user passwords), the UPDATE, DELETE, and TRUNCATE permissions for tables that do not have primary keys, and the permission to create a replication connection.

If the permissions are insufficient, the migration will fail.

Failure Cause and Handling Suggestion

Failure cause: This item cannot be checked because the source database fails to be connected.

Handling suggestion: Check whether the source database is connected.

Failure cause: Insufficient user permissions

Handling suggestion: Check whether the database user permissions meet the migration requirements.

Failure cause: In a full migration, the source database user must have the SELECT, REFERENCES, TRIGGER, EXECUTE, and USAGE permissions.

Handling suggestion: Change or authorize the migration account.

Failure cause: The replication permission is not configured in pg_hba.conf for the replication instance and database user.

Handling suggestion:

Grant the replication permission to the user.

Add the following to pg_hba.conf, and restart the database for the modification to take effect:

host replication XXX(dbuser) 0.0.0.0/0 password

After the migration is complete, delete this record and restart the database again.

Failure cause: The max_wal_senders value in the source database is too small.

Handling suggestion: In the postgresql.conf file, change the max_wal_senders value to a larger one, such as increasing it by 5 or 10.

Failure cause: The database is unavailable.

Handling suggestion: Contact technical support.

Failure cause: An internal error occurs.

Handling suggestion: Contact technical support.

Item to Be Confirmed and Handling Suggestion

Item to be confirmed: The source database contains objects that can only be created by a superuser. The destination user is not a superuser, so the objects will be ignored.

Handling suggestion: Use a superuser of the destination database or confirm that these objects can be ignored.