このトピックでは、OceanBase クラスタインスタンスの MySQL テナントの通常アカウントを作成し、データ移行のさまざまなフェーズで必要な最小限の権限をアカウントに付与する方法について説明します。
背景
MySQL モードの OceanBase クラスタインスタンスは、通常アカウント、スーパーアカウント、読み取り専用アカウントの 3 種類のデータベースアカウントをサポートしています。データ伝送サービスを使用して OceanBase クラスタインスタンスからデータを移行する場合は、次のルールに従ってください。
通常アカウントを使用する場合は、このトピックの説明に基づいてアカウントに権限を付与します。
スーパーアカウントを使用する場合、デフォルトですべてのデータベースに対する読み取り/書き込み権限があります。
読み取り専用アカウントを使用する場合、デフォルトですべてのデータベースに対する読み取り権限があります。
この例では、OceanBase クラスタインスタンスに対して通常アカウントが作成されます。OceanBase データソースを作成するときは、[ユーザー名] フィールドにこのアカウントを指定します。
一意のキーのないテーブルを移行する場合は、データ移行の前に、読み取り専用権限を持つ __oceanbase_inner_drc_user
ユーザーも作成する必要があります。次に、OceanBase データソースを作成するときに、__oceanbase_inner_drc_user のパスワードを指定します。
クラスタインスタンスの通常アカウントを作成する
[クラスタインスタンスワークスペース] ページに移動します。
ApsaraDB for OceanBase コンソール にログインします。
左上隅で、ターゲットインスタンスが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックし、ターゲットインスタンスの名前をクリックします。
[アカウント] ページに移動します。
[クラスタインスタンスワークスペース] ページで、左側のナビゲーションウィンドウの [テナント管理] をクリックします。
[テナント] ページで、ターゲット MySQL テナントの名前をクリックします。
[テナントワークスペース] ページで、左側のナビゲーションウィンドウの [アカウント管理] をクリックします。
[アカウント管理] ページで、右上隅にある [アカウントの作成] をクリックします。
[アカウントの作成] ダイアログボックスで、パラメーターを構成します。
パラメーター
説明
ユーザー名
アカウント名には、文字、数字、およびアンダースコア (_) を使用できます。文字で始まり、文字または数字で終わる必要があり、長さは 32 文字を超えることはできません。
アカウントタイプ
[通常アカウント] を選択します。
アクセス可能なデータベース (オプション)
アカウントがアクセスできる 1 つ以上のデータベースを選択します。
左側の [未承認] リストで、1 つ以上のデータベースを選択し、[>] をクリックして右側のリストに追加します。
[承認済み] リストで、各データベースに対する [読み取り/書き込み]、[DDL のみ]、[DML のみ]、または [読み取り専用] 権限をアカウントに付与します。
パスワード
パスワードは 10 ~ 32 文字の長さで、大文字、小文字、数字、特殊文字の 4 種類の文字のうち 3 種類を含む必要があります。サポートされている特殊文字は、! @ # $ % ^ & * ( ) _ + - = です。[ランダム生成] をクリックして、ランダムなパスワードを自動的に入力できます。
説明[パスワードをコピー] をクリックしてパスワードをコピーし、機密性を保持することもできます。
備考 (オプション)
アカウントの説明を入力します。
[OK] をクリックします。
ソースクラスタインスタンスの通常アカウントに権限を付与する
次の表に、データ移行のさまざまなフェーズでソース OceanBase クラスタインスタンス (MySQL モード) の通常アカウントに必要な最小限の権限を示します。
テーブルタイプ | スキーマ移行 | フル移行 | 増分 DML 操作同期 | 増分 DDL 操作同期 | フル検証 | 逆増分同期 |
プライマリキーまたは NULL 以外のユニークキーを持つテーブル | 読み取り専用 | 読み取り専用 | 読み取り専用 | 読み取り専用 | 読み取り専用 |
|
プライマリキーまたは NULL 以外のユニークキーがないテーブル | 読み取り専用 |
| 読み取り専用 | 読み取り専用 | __oceanbase_inner_drc_user が必要 |
|
ターゲットクラスタインスタンスの通常アカウントに権限を付与する
次の表に、データ移行のさまざまなフェーズでターゲット OceanBase クラスタインスタンス (MySQL モード) の通常アカウントに必要な最小限の権限を示します。
テーブルタイプ | スキーマ移行 | フル移行 | 増分 DML 操作同期 | 増分 DDL 操作同期 | フル検証 | 逆増分 DML 同期 | 逆増分 DDL 同期 |
プライマリキーまたは NULL 以外のユニークキーを持つテーブル | DDL のみ | 読み取り/書き込み | 読み取り/書き込み | DDL のみ | 読み取り専用 | 読み取り専用 | 読み取り専用 |
プライマリキーまたは NULL 以外のユニークキーがないテーブル | DDL のみ | 読み取り/書き込み | 読み取り/書き込み | DDL のみ | サポートされていません | 読み取り専用 | 読み取り専用 |
__oceanbase_inner_drc_user を作成し、ユーザーに権限を付与する
ApsaraDB for OceanBase コンソールにログインし、[テナントワークスペース] ページに移動します。
[テナントワークスペース] ページで、右上隅にある [データベースにログイン] をクリックします。
[データベース管理] ページに移動してログインすることもできます。
[データベースアカウントを入力してください] ダイアログボックスで、ログインするデータベースの名前を入力し、[OK] をクリックします。
[接続パスワードを入力してください] ダイアログボックスで、データベースにログインするためのパスワードを入力し、[OK] をクリックします。
ログイン後、次のコマンドを実行して、ユーザー
__oceanbase_inner_drc_user
を作成します。create user __oceanbase_inner_drc_user identified by '<password>';
次のコマンドを実行して、ユーザーに権限を付与します。
grant select on *.* to __oceanbase_inner_drc_user;