このトピックでは、OceanBase クラスターインスタンスの Oracle 互換テナントに通常アカウントを作成し、データ移行の各フェーズで必要な最小権限をアカウントに付与する方法について説明します。
背景情報
Oracle 互換モードの OceanBase クラスターインスタンスは、通常アカウントとスーパーアカウントの 2 種類のデータベースアカウントをサポートしています。データ伝送サービスを使用して OceanBase クラスターインスタンスからデータを移行する場合は、次のルールに従ってください。
通常アカウントを使用する場合は、このトピックの説明に基づいてアカウントに権限を付与してください。
スーパーアカウントを使用する場合、スーパーアカウントはデフォルトですべてのデータベースに対する読み取り/書き込み権限を持っています。
この例では、OceanBase クラスターインスタンス用に通常アカウントが作成されます。OceanBase データソースを作成する際に、このアカウントを [ユーザー名] フィールドに指定します。

一意キーのないテーブルを移行する場合は、データ移行の前に、読み取り専用権限を持つ __OCEANBASE_INNER_DRC_USER ユーザーも作成する必要があります。その後、OceanBase データソースを作成する際に、__OCEANBASE_INNER_DRC_USER のパスワードを指定します。

クラスターインスタンスの通常アカウントの作成
[クラスターインスタンスワークスペース] ページに移動します。
ログインしてください。
ApsaraDB for OceanBase コンソールにログインします。左上のコーナーで、ターゲットインスタンスが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで [インスタンス] をクリックし、ターゲットインスタンスの名前をクリックします。
[アカウント] ページに移動します。
[クラスターインスタンスワークスペース] ページで、左側のナビゲーションウィンドウの [テナント管理] をクリックします。
[テナント] ページで、[テナントモード] が [Oracle] であるターゲットテナントの名前をクリックします。

[テナントワークスペース] ページで、左側のナビゲーションウィンドウの [アカウント管理] をクリックします。
[アカウント管理] ページで、右上のコーナーにある [アカウントの作成] をクリックします。

[アカウントの作成] ダイアログボックスで、パラメーターを設定します。

パラメーター
説明
ユーザー名
アカウント名には、英字、数字、アンダースコア (_) を使用できます。先頭は英字、末尾は英字または数字である必要があり、長さは 32 文字を超えることはできません。
アカウントタイプ
[通常アカウント] を選択します。その後、データベースに対する権限をアカウントに付与できます。権限の詳細については、「Oracle モードでのアカウント権限」をご参照ください。
パスワード
パスワードは 10~32 文字の長さで、大文字、小文字、数字、特殊文字の 4 種類のうち 3 種類を含む必要があります。サポートされている特殊文字は次のとおりです:! @ # $ % ^ & * ( ) _ + - =。[ランダム生成] をクリックすると、ランダムなパスワードが自動的に入力されます。
説明また、[パスワードのコピー] をクリックしてパスワードをコピーし、安全な場所に保管することもできます。
説明 (任意)
アカウントの説明を入力します。
[OK] をクリックします。
アクセスオブジェクトの管理
このセクションでは、クラスターインスタンスの通常アカウントにテーブルに対する権限を付与する方法について説明します。以降のセクションの権限説明に基づいて権限を付与できます。
OceanBase Database の Oracle 互換テナントの [アカウント管理] ページに移動します。
ターゲットの通常アカウントの横にある [アクセスオブジェクトの管理] をクリックします。

[アクセスオブジェクトの管理] ページで、右上のコーナーにある [オブジェクトの追加] をクリックします。

[オブジェクトの追加] ダイアログボックスで、パラメーターを設定します。

パラメーター
説明
追加方法
[オブジェクトの指定] または [オブジェクトのインポート] を選択できます。
オブジェクトの選択
[オブジェクトの指定] を選択した場合は、左側の [ソースオブジェクト] リストでターゲットテーブルオブジェクトを選択し、[>] をクリックして右側のリストに追加します。
[オブジェクトのインポート] を選択した場合は、テキストボックスに
username/object name形式でターゲットテーブルオブジェクトを貼り付け、複数のオブジェクトはカンマ (,) で区切ります。
権限の付与
必要に応じて、[読み取り専用] または [読み取り/書き込み] 権限を付与できます。
[OK] をクリックします。
ソースクラスターインスタンスの通常アカウントへの権限付与
次の表に、データ移行の各フェーズでソース OceanBase クラスターインスタンス (Oracle 互換モード) の通常アカウントに必要な最小権限を示します。
テーブルタイプ | スキーマ移行 | フル移行 | 増分同期 | フル検証 | 逆方向増分 |
プライマリキーまたは null でない一意キーを持つテーブル | 読み取り専用 | 読み取り専用 | 読み取り専用 | 読み取り専用 | 読み取り/書き込み |
プライマリキーまたは null でない一意キーのないテーブル | 読み取り専用 |
| 読み取り専用 | __OCEANBASE_INNER_DRC_USER が必要 | 読み取り/書き込み |
ターゲットクラスターインスタンスの通常アカウントへの権限付与
次の表に、データ移行の各フェーズでターゲット OceanBase クラスターインスタンス (Oracle 互換モード) の通常アカウントに必要な最小権限を示します。
テーブルタイプ | スキーマ移行 | フル移行 | 増分同期 | フル検証 | 逆方向増分 |
プライマリキーまたは null でない一意キーを持つテーブル | 読み取り/書き込み | 読み取り/書き込み | 読み取り/書き込み | 読み取り専用 | 読み取り専用 |
プライマリキーまたは null でない一意キーのないテーブル | 読み取り/書き込み | 読み取り/書き込み | 読み取り/書き込み | サポートされていません | 読み取り専用 |
__OCEANBASE_INNER_DRC_USER の作成と権限付与
ApsaraDB for OceanBase コンソールにログインし、[テナントワークスペース] ページに移動します。
[テナントワークスペース] ページで、右上のコーナーにある [データベースにログイン] をクリックします。

[データベースアカウントの入力] ダイアログボックスで、ログインするデータベースの名前を入力するか、ドロップダウンリストから選択して [OK] をクリックします。
[接続パスワードの入力] ダイアログボックスで、データベースにログインするためのパスワードを入力し、[OK] をクリックします。
ログイン後、次のコマンドを実行してユーザー
__OCEANBASE_INNER_DRC_USERを作成します:CREATE USER '__OCEANBASE_INNER_DRC_USER' IDENTIFIED BY <YOUR_PASSWORD>>;次のコマンドを実行して、ユーザーに権限を付与します:
GRANT CREATE SESSION TO '__OCEANBASE_INNER_DRC_USER'; GRANT SELECT ANY DICTIONARY TO '__OCEANBASE_INNER_DRC_USER';移行対象のデータベーステーブルに対する
SELECT権限は、次のいずれかの方法で付与できます:// システム権限を付与します。 GRANT SELECT ANY TABLE TO '__OCEANBASE_INNER_DRC_USER'; // 特定のデータベーステーブルオブジェクトに権限を付与します。 GRANT SELECT ON <schema>.<table> TO '__OCEANBASE_INNER_DRC_USER';