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