すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:データベースアカウントの移行

最終更新日:Apr 08, 2025

Data Transmission Service ( DTS ) を使用すると、データベースアカウントを移行できます。データ同期または移行タスクを構成する際に、アカウント移行機能を有効にすることができます。これにより、ソースデータベースのアカウントとそのパスワードおよび権限をターゲットデータベースに移行できます。

背景

ソースデータベースからターゲットデータベースにデータを同期または移行した後、ソースデータベースのアカウントを手動で作成し、ターゲットデータベースのアカウントに権限を付与する必要がある場合があります。このプロセスを完了するには、データベースに関する専門知識が必要です。このプロセスは時間がかかり、省略されがちです。その結果、ビジネスに影響を与える可能性があります。

前提条件

  • DTS タスクで使用されるソースデータベースとターゲットデータベースのアカウントに必要な権限が付与されています。詳細については、このトピックのデータベースアカウントに必要な権限セクションをご参照ください。

  • スキーマの同期または移行が同期または移行のタイプとして選択されています。つまり、タスク作成ウィザードの オブジェクトの設定と詳細設定 ステップで、スキーマ同期同期タイプ パラメーターに選択されているか、スキーマ移行移行タイプ パラメーターに選択されています。

サポートされているデータベース

説明

MySQL データベースは、ApsaraDB RDS for MySQL インスタンスまたは自己管理 MySQL データベースにすることができます。

ソースデータベースタイプ

ターゲットデータベースタイプ

MySQL

MySQLPolarDB for MySQL

PolarDB for MySQL

MySQLPolarDB for MySQL

使用上の注意

  • ターゲットデータベースが MySQL 5.6 インスタンスまたは PolarDB for MySQL クラスタで実行されている場合、ソースデータベースのアカウントをターゲットデータベースに移行することはできません。

  • ソースデータベースが MySQL 8.0 を実行している場合、動的権限を持つアカウントは移行できません。

  • ターゲットデータベースが MySQL インスタンスまたは PolarDB for MySQL クラスタの場合、RELOAD、CREATE TABLESPACE、FILE、または ALL PRIVILEGES 権限を持つソースデータベースのアカウントでは、アカウント移行機能はサポートされていません。

  • root、mysql.infoschema、mysql.session、mysql.sys などのシステムアカウント、およびソースデータベースの組み込みアカウントは、ターゲットデータベースに移行できません。システムアカウントまたは組み込みアカウントを移行するデータベースアカウントとして選択すると、DTS タスクに対して Access denied for user 'XXXX' というエラーメッセージが返されます。

  • ターゲットデータベースに既に存在するアカウントは移行できません。DTS タスクが再起動された場合、または複数の DTS タスクが実行されている場合、移行されるアカウントがターゲットデータベースに存在する可能性があります。DTS タスクの スキーマ移行 モジュールの [User_Privilege] タブに、ターゲットデータベースに存在するアカウントが移行済みアカウントとして表示されます。ターゲットデータベースにアカウントを作成するための文に、user already exists という注釈が表示されます。

  • 承認されていないアカウントは移行できません。

  • アカウントのパスワードは、アカウントの移行時にリセットできません。

  • 移行するアカウントが特権アカウントの場合、そのアカウントは、ターゲットデータベースに移行された後、データベースの管理が許可されていない標準アカウントになります。

  • localhost または 127.0.0.1 のみを使用してアクセスされるターゲット Alibaba Cloud データベースインスタンスのアカウントはデータ移行をサポートしていないため、アカウントを移行しないことをお勧めします。

データベースアカウントに必要な権限

ソースデータベースのアカウントを移行する前に、DTS タスクの構成時に使用するソースデータベースアカウントとターゲットデータベースアカウントに次の権限があることを確認してください。特権アカウントは要件を満たしています。

アカウント

権限

承認方法

ソースデータベースアカウント

mysql.user、mysql.db、mysql.columns_priv、および mysql.tables_priv メタデータテーブルに対する SELECT 権限。

特権アカウントを使用して次のコマンドを実行し、ソースデータベースアカウントとターゲットデータベースアカウントに権限を付与します。

ソースデータベース

grant SELECT on mysql.user to user@'%';
grant SELECT on mysql.db to user@'%';
grant SELECT on mysql.columns_priv to user@'%';
grant SELECT on mysql.tables_priv to user@'%';

ターゲットデータベース

grant SELECT on mysql.user to user@'%';
grant CREATE USER on *.* to user@'%';
grant GRANT OPTION on *.* to user@'%';
説明

コマンドの user を、DTS タスクの構成に使用するソースデータベースアカウントまたはターゲットデータベースアカウントに置き換えます。

ターゲットデータベースアカウント

CREATE USER 権限、GRANT OPTION 権限、および mysql.user メタデータテーブルに対する SELECT 権限。

手順

  1. 詳細設定 ステップで、アカウントを移行[はい] に設定します。

  2. ビジネス要件に基づいて、移行するアカウントを選択します。

    説明

    アカウント名は、<username>@<host> 形式です。<host> 変数は、指定されたアカウントを使用してログオンできるホストを指定します。

  3. DTS タスクに必要なその他のパラメーターを構成します。詳細については、「データ同期シナリオの概要」または「データ移行シナリオの概要」をご参照ください。

FAQ

  • アカウントを選択できないのはなぜですか?

    アカウントがシステムアカウントであるか、同じ名前のアカウントがターゲットデータベースに既に存在する可能性があります。

  • アカウントリストが空なのはなぜですか?

    指定したアカウントに必要な権限がない可能性があります。DTS タスクで使用されるソースデータベースとターゲットデータベースのアカウントに必要な権限が付与されていることを確認してください。