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

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

最終更新日:Nov 04, 2024

Data Transmission Service (DTS) では、データベースアカウントを移行できます。 データ同期または移行タスクを設定するときに、アカウント移行機能を有効にできます。 これにより、移行元データベースのアカウントとそのパスワードとアクセス許可を移行先データベースに移行できます。

背景情報

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

前提条件

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

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

使用上の注意

  • データベースアカウントは、MySQLデータベース間、MySQLデータベースからPolarDB for MySQLクラスター、またはPolarDB for MySQLクラスター間でのみ移行できます。

    説明
    • MySQLデータベースは、ApsaraDB RDS for MySQLインスタンスまたは自己管理型MySQLデータベースです。

    • ターゲットデータベースがApsaraDB RDS for MySQL 5.6インスタンスで実行されている場合、ソースデータベースのアカウントをターゲットデータベースに移行できません。

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

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

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

  • 未承認のアカウントは移行できません。

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

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

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

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

[アカウント]

権限

承認方法

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

e mysql.us er、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権限、およびe mysql.usのメタデータテーブルに対するSELECT権限。

手順

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

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

    説明

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

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

よくある質問

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

    アカウントは、システムアカウントであってもよいし、同じ名前のアカウントが既に宛先データベースに存在していてもよい。

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

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