データ移行機能を使用してデータを移行する前に、すべてのデータソースにデータベースユーザーが作成されており、適切な権限を持っていることを確認してください。
OceanBaseデータベース
ソース側の権限に関する説明
OceanBaseデータベースのMySQL互換モードをソースとして使用する場合は、OceanBaseデータベースユーザーを作成する必要があります。
OceanBaseデータベースのMySQL互換モード オンプレデータベース タイプをソースとして使用する場合は、OceanBaseデータベースユーザーとsysテナントユーザー(オプション)を作成する必要があります。
OceanBaseデータベースユーザーの作成と権限付与
ここで作成するOceanBaseデータベースユーザーは、インスタンスタイプ が クラスタインスタンス(トランザクション)、OBKVインスタンス(フラッグシップ版)、テナントインスタンス、クラスタインスタンス(分析型)、または セルフマネージドデータベース のOceanBase MySQL Compatible Modeデータソースを作成する際に、データベースアカウント に記入するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- Create a user in the source business tenant for data migration. CREATE USER '<user_name>' IDENTIFIED BY '<password>'; -- Use the GRANT statement to grant the SELECT privilege on the source database to be migrated to the created database user. GRANT SELECT ON <database_name>.* TO '<user_name>'; -- For OceanBase Database in MySQL-compatible mode V4.0.0 and later, you must also grant the SELECT privilege on the oceanbase database. GRANT SELECT ON oceanbase.* TO '<user_name>';注意
OceanBaseデータベースのMySQL互換モードがV4.0.0未満の場合、
oceanbase.*権限を追加していない場合は、oceanbase.gv$tableのSELECT権限を追加する必要があります。sysテナントユーザーの作成と権限付与
OceanBaseのセルフマネージドデータベースを選択し、増分ログデータとデータベースオブジェクト構造情報を読み取る必要がある場合は、ソース側のsysテナント内にユーザーを作成してください。
ここで作成するsysテナントユーザーは、インスタンスタイプ が オンプレデータベース のOceanBase MySQL Compatible Modeデータソースを作成する際に、詳細設定 > システムテナントアカウント を有効にした後、システムアカウント に記入するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- Create a user in the sys tenant to read incremental log data and database object structure information from OceanBase Database. CREATE USER <drc_user> IDENTIFIED BY '<drc_password>'; -- Use the GRANT statement to grant the SELECT ON *.* privilege to the created database user. GRANT SELECT ON *.* TO <drc_user>;
ターゲット側の権限に関する説明
ここで作成するOceanBaseデータベースユーザーは、OceanBase MySQL Compatible Modeデータソースを作成する際に、データベースアカウント に記入するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- Create a user in OceanBase Database for data migration.
CREATE USER '<username>' IDENTIFIED BY '<password>';
-- You have the CREATE, CREATE VIEW, DROP VIEW, SELECT, INSERT, UPDATE, ALTER, INDEX, and DELETE privileges on the target database.
GRANT CREATE,CREATE VIEW,DROP VIEW,SELECT,INSERT,UPDATE,ALTER,INDEX,DELETE ON <database_name>.* TO '<user_name>';
-- The user has the SELECT privilege on the entire tenant.
GRANT SELECT ON *.* TO '<user_name>';
OceanBaseデータベースのMySQL互換モードのV4.2.4以降V4.3.0未満、またはV4.3.3以降のバージョンをターゲットとして使用する場合:
移行ユーザーにはトリガー権限が必要です。これは、ターゲット側にトリガーが存在するかどうかをチェックするために使用されます。存在する場合、データの不整合が発生する可能性があります。
新規データ移行タスク作成時に構造移行を選択し、かつデータベースのテーブル構造に外部キー制約が含まれる場合、移行ユーザーには外部キーに依存するテーブルが存在するデータベースに対する
REFERENCES権限も必要です。対応するデータベースのトリガーと
REFERENCES権限を付与するか、グローバルなトリガーとREFERENCES権限を付与することもできます。対応するデータベースへの権限付与
GRANT TRIGGER,REFERENCES ON <database_name>.* TO '<user_name>';グローバル権限の付与
GRANT TRIGGER,REFERENCES ON *.* TO '<user_name>';
ソース側の権限について
OceanBaseデータベースのOracle互換モードをソースとする場合、OceanBaseデータベースユーザーを作成する必要があります。
OceanBaseデータベースのOracle互換モードである オンプレデータベース タイプをソースとする場合、OceanBaseデータベースユーザーとsysテナントユーザー(オプション)を作成する必要があります。
OceanBaseデータベースユーザーの作成と権限の付与
ここで作成するOceanBaseデータベースユーザーは、インスタンスタイプ が クラスタインスタンス(トランザクション)、OBKVインスタンス(フラッグシップ版)、テナントインスタンス、クラスタインスタンス(分析用)、または セルフマネージドデータベース のOceanBase Oracle Compatible Modeデータソースに作成する際、データベースアカウント に記入するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- Create a user in the source business tenant for data migration. CREATE USER '<user_name>' IDENTIFIED BY <password>; -- Use the GRANT statement to grant DBA privileges to a created database user. GRANT DBA TO '<user_name>'; -- For OceanBase Database in Oracle-compatible mode V4.0.0 and later, the source-side migration user must also have the DBA_OB_ARCHIVELOG privilege for SELECT operations. GRANT SELECT ON DBA_OB_ARCHIVELOG TO '<user_name>'; -- For OceanBase Database in Oracle-compatible mode V4.2.0 and later, the source-side migration user must also have the SELECT privilege on the DBA_OB_TABLE_LOCATIONS view. GRANT SELECT ON DBA_OB_TABLE_LOCATIONS TO '<user_name>';sysテナントユーザーの作成と権限の付与
OceanBaseのセルフマネージドデータベースを選択し、増分ログデータとデータベースオブジェクト構造情報を読み取る必要がある場合は、ソース側のsysテナント内にユーザーを作成してください。
ここで作成するsysテナントユーザーは、インスタンスタイプ が セルフマネージドデータベース のOceanBase Oracle Compatible Modeデータソースを作成する際、詳細設定 > sysテナントアカウント を有効にした後、システムアカウント に記入するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- Create a user in the sys tenant to read incremental log data and database object structure information from OceanBase Database. CREATE USER <drc_user> IDENTIFIED BY '<drc_password>'; -- Use the GRANT statement to grant the SELECT ON *.* privilege to the created database user. GRANT SELECT ON *.* TO <drc_user>;
ターゲット側の権限について
移行ユーザーに権限を付与するには、以下の2つの方法があります:
方法1
以下のステートメントを実行します。操作は比較的簡単ですが、ユーザーに付与される権限は大きくなります。
GRANT DBA TO '<user_name>';方法2
ユーザーに対して業務データベースの各種テーブルに対する権限を付与します。複数の業務データベースが存在する場合は、それぞれに対して権限を付与してください。
GRANT CONNECT TO '<user_name>'; GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO '<user_name>'; GRANT CREATE ANY TABLE, CREATE ANY INDEX, CREATE ANY VIEW, INSERT ANY TABLE, UPDATE ANY TABLE, ALTER ANY TABLE, DELETE ANY TABLE TO '<user_name>';
ソース側権限の説明
OceanBaseデータベースのHBase API互換モードがソース側として使用される場合、移行ユーザーは移行対象のテーブルに対するSELECT権限を持っている必要があります。これはソース側のデータを読み取るために使用されます。
GRANT SELECT ON <database_name>.* TO '<user_name>';
ターゲット側の権限説明
OceanBase HBase API Compatibleがターゲット側として機能する場合、移行ユーザーはターゲット側テーブルに対する書き込み権限を持っている必要があります。タスクに構造移行が含まれる場合は、TableGroupの作成、テーブル作成、およびテーブル構造変更の権限も必要です。
構造移行段階では、CREATE TABLEGROUPおよびCREATE TABLEステートメントが実行されます。OceanBase Cloudの公式ドキュメントによると、TableGroupの作成にはグローバルCREATE(.)権限が必要なため、<database_name>.*レベルのCREATEまたはALL PRIVILEGESのみを付与するだけでは構造移行を完了できません。
以下の方法で権限を付与することを推奨します:
GRANT CREATE ON *.* TO '<user_name>';
GRANT ALTER,SELECT,INSERT,UPDATE,DELETE ON <database_name>.* TO '<user_name>';
パラメータ説明:
CREATE ON *.*:構造移行段階でTableGroupを作成し、テーブル作成に必要なCREATE権限を上書きするために使用されます。ALTER:構造移行段階でテーブル構造を変更するために使用されます。SELECT, INSERT, UPDATE, DELETE:フル移行、増分同期、データ検証などのデータ読み書きシナリオに使用されます。
構造移行を有効化せず、かつターゲット側のTableGroupとテーブル構造が事前に作成済みの場合は、グローバルCREATEを付与せず、実際の移行段階に応じてターゲットデータベースレベルのデータ読み書きおよびテーブル構造変更権限のみを付与することができます。
権限付与を簡略化したい場合は、より広範囲のALL PRIVILEGESを付与することもできますが、その場合はグローバル*.*権限を上書きする必要があります。単独のGRANT ALL PRIVILEGES ON <database_name>.*には、依然としてTableGroup作成に必要なグローバル権限は含まれていません。
MySQL
ソース側の権限説明
-- The database user must have read permission on the database to be migrated. For MySQL database V8.0, additionally grant the SHOW VIEW privilege.
GRANT SELECT ON <database_name>.* TO '<user_name>';
-- During incremental synchronization from a MySQL database, the database user must have the REPLICATION CLIENT, REPLICATION SLAVE, and SELECT *.* privileges.
-- During incremental synchronization, lacking read permissions on all tables at the source may cause the task to be interrupted abnormally. The [WITH GRANT OPTION] clause in the following command is optional.
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION];
GRANT SELECT ON *.* TO '<user_name>';
ターゲット側の権限説明
MySQLデータベースがターゲット側となる場合、移行ユーザーはターゲット側データベースに対する CREATE、CREATE VIEW、INSERT、UPDATE および DELETE 権限を持っている必要があります。
GRANT <privilege_type> ON <database_name>.<table_name> TO '<user_name>'@'<host_name>' [WITH GRANT OPTION];
パラメータ |
説明 |
|---|---|
| privilege_type | このアカウントに CREATE、INSERT および UPDATE などの操作権限を付与します。このアカウントにすべての権限を付与する必要がある場合は、ALL を使用してください。 |
| database_name | データベースの名前です。このアカウントにすべてのデータベースに対する操作権限を付与する場合は、アスタリスク(*)を使用してください。 |
| table_name | テーブルの名前です。このアカウントにすべてのテーブルに対する操作権限を付与する場合は、アスタリスク(*)を使用してください。 |
| user_name | 権限を付与されるアカウントです。 |
| host_name | このアカウントがログインできるホストです。このアカウントを任意のホストからログインさせる場合は、パーセント記号(%)を使用してください。 |
| WITH GRANT OPTION | このアカウントに GRANT コマンドを使用する権限を付与します。このパラメータはオプションです。 |
構造移行時には、移行するビューとインデックスにそれぞれ以下の権限が必要です。
ビューを構造移行するには、データベースの
SELECT権限が必要です。GRANT SELECT ON <database_name>.* TO '<user_name>';インデックスを構造移行するには、データベースの
INDEX権限が必要です。GRANT INDEX ON <database_name>.* TO '<user_name>';
データベースユーザーにはトリガー権限が必要です。
この権限は、ターゲット側にトリガーが存在するかどうかをチェックするために使用されます。存在する場合、データの不整合を引き起こす可能性があります。
GRANT TRIGGER ON *.* TO '<user_name>';または
GRANT TRIGGER ON <database_name>.* TO '<user_name>';OceanBaseデータベースのMySQL互換モードからMySQLデータベースへの双方向同期タスクでは、ターゲット側に
omsライブラリのSELECT、CREATE、INSERTおよびUPDATE権限が必要です。GRANT SELECT, CREATE, INSERT, UPDATE ON oms.* TO '<user_name>';
Oracle
Oracleデータベースをソースとする順方向移行およびターゲットとする逆方向復元に必要な権限は同じです。
説明
ADGスタンバイデータベースでは、権限付与後にも権限が反映されない場合があります。その場合、スタンバイデータベースでコマンド
ALTER SYSTEM FLUSH SHARED_POOL;を実行してShared Poolをリフレッシュする必要があります。本記事で説明するのは最小権限ではありません。移行ユーザーには
SELECT ANY TRANSACTION、SELECT ANY TABLE、およびSELECT ANY DICTIONARY権限を付与する必要があります。
12C以前のDBAユーザー権限付与の説明
ユーザーの環境が移行ユーザーにデータベース管理者(DBA)ロールを付与することを許可し、かつOracleデータベースのバージョンが12C以前の場合は、以下のステートメントを実行するだけで移行ユーザーにDBA権限を付与できます。
GRANT DBA TO <user_name>;
12C以前の非DBAユーザー権限付与の説明
ユーザー環境で移行ユーザーへの権限付与に慎重な場合、かつOracleデータベースのバージョンが12C以前の場合、操作は以下のとおりです:
CONNECT権限を付与します。
GRANT CONNECT TO <user_name>;移行ユーザーに
CREATE SESSION、ALTER SESSION、SELECT ANY TRANSACTION、SELECT ANY TABLE、およびSELECT ANY DICTIONARY権限を付与します。GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>;移行ユーザーに
LOGMINER関連権限を付与します。GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>;移行ユーザーに
CREATE TABLEおよびUNLIMITED TABLESPACE権限を付与します。GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>;移行するSchema名が
user_nameと一致する場合、以下のステートメントを実行します。GRANT CREATE SEQUENCE,CREATE VIEW TO <user_name>;移行するSchema名が
user_nameと一致しない場合、以下のステートメントを実行します。GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE, DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE, CREATE ANY VIEW,DROP ANY VIEW,INSERT ANY TABLE,DELETE ANY TABLE,UPDATE ANY TABLE TO <user_name>;以下のステートメントを実行することもできます。
GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE, DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE, CREATE ANY VIEW,DROP ANY VIEW TO <user_name>; -- Grant privileges on the specific table to be migrated. GRANT DELETE, INSERT, UPDATE ON <database_name>.<table_name> TO <user_name>;
12C以降のDBAユーザー権限付与に関する説明
ユーザーの環境で移行ユーザーにデータベース管理者(DBA)ロールを付与でき、Oracleデータベースのバージョンが12C以降の場合は、12C/18C/19Cのプラガブル・データベース(Pluggable Database、PDB)を使用しているかどうかを確認する必要があります。
非PDB
以下の権限付与ステートメントを実行し、移行ユーザーにDBA権限を付与します。
GRANT DBA TO <user_name>;以下のステートメントを実行し、移行ユーザーに
SYS.USER$テーブルの読み取り権限を付与します。GRANT SELECT ON SYS.USER$ TO <user_name>;
PDB
OracleデータベースからOceanBaseデータベースのOracle互換モードへ移行する際、移行元が12C/18C/19Cのプラガブル・データベース(Pluggable Database、PDB)の場合、PDBにアクセスするアカウントは共通ユーザーである必要があります。
以下のステートメントを実行し、CDB$ROOTに切り替えます。
ALTER SESSION SET CONTAINER=CDB$ROOT;各共通ユーザーは、ルート・コンテナ(
CDB$ROOT)および接続権限を持つ任意のPDBに接続し、関連する操作を実行できます。以下のステートメントを実行し、移行ユーザーにDBA権限を付与します。
GRANT DBA TO C##XXX CONTAINER=ALL;以下のステートメントを実行し、移行ユーザーに
SYS.USER$テーブルの読み取り権限を付与します。GRANT SELECT ON SYS.USER$ TO C##XXX CONTAINER=ALL;
12C以降の非DBAユーザー権限付与に関する説明
ユーザー環境で移行ユーザーへの権限付与に慎重な場合、かつOracleデータベースのバージョンが12C以降である場合、操作は以下のとおりです:
非PDB
CONNECT権限を付与します。
GRANT CONNECT TO <user_name>;以下のステートメントを実行し、移行ユーザーに
SYS.USER$テーブルの読み取り権限を付与します。GRANT SELECT ON SYS.USER$ TO <user_name>;移行ユーザーに
CREATE SESSION、ALTER SESSION、SELECT ANY TRANSACTION、SELECT ANY TABLEおよびSELECT ANY DICTIONARY権限を付与します。GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <user_name>;移行ユーザーに
LOGMINER関連権限を付与します。GRANT LOGMINING TO <user_name>; GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <user_name>;移行ユーザーに
CREATE TABLEおよびUNLIMITED TABLESPACE権限を付与します。GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <user_name>;移行するスキーマ名が
user_nameと一致する場合、以下のステートメントを実行します。GRANT CREATE SEQUENCE,CREATE VIEW TO <user_name>;移行するスキーマ名が
user_nameと一致しない場合、以下のステートメントを実行します。GRANT CREATE ANY TABLE,CREATE ANY INDEX,DROP ANY TABLE,ALTER ANY TABLE,COMMENT ANY TABLE, DROP ANY INDEX,ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE,DROP ANY SEQUENCE, CREATE ANY VIEW,DROP ANY VIEW,INSERT ANY TABLE,DELETE ANY TABLE,UPDATE ANY TABLE TO <user_name>;
PDB
OracleデータベースからOceanBaseデータベースのOracle互換モードへ移行する際、移行元が12C/18C/19Cのプラガブル・データベース(Pluggable Database、PDB)の場合、PDBにアクセスするアカウントは共通ユーザーである必要があります。
CONNECT権限を付与します。
GRANT CONNECT TO <C##XXX> CONTAINER=ALL;以下のステートメントを実行し、移行ユーザーに
SYS.USER$テーブルの読み取り権限を付与します。GRANT SELECT ON SYS.USER$ TO <C##XXX> CONTAINER=ALL;移行ユーザーに
CREATE SESSION、ALTER SESSION、SELECT ANY TRANSACTION、SELECT ANY TABLEおよびSELECT ANY DICTIONARY権限を付与します。GRANT CREATE SESSION, ALTER SESSION, SELECT ANY TRANSACTION, SELECT ANY TABLE, SELECT ANY DICTIONARY TO <C##XXX> CONTAINER=ALL;移行ユーザーに
LOGMINER関連権限を付与します。GRANT LOGMINING TO <C##XXX> CONTAINER=ALL; GRANT EXECUTE ON SYS.DBMS_LOGMNR TO <C##XXX> CONTAINER=ALL;移行ユーザーに
CREATE TABLEおよびUNLIMITED TABLESPACE権限を付与します。GRANT CREATE TABLE, UNLIMITED TABLESPACE TO <C##XXX> CONTAINER=ALL;移行するスキーマ名が
C##XXXと一致する場合、以下のステートメントを実行します。GRANT CREATE SEQUENCE, CREATE VIEW TO <C##XXX> CONTAINER=ALL;移行するスキーマ名が
C##XXXと一致しない場合、以下のステートメントを実行します。GRANT CREATE ANY TABLE, CREATE ANY INDEX, DROP ANY TABLE, ALTER ANY TABLE, COMMENT ANY TABLE, DROP ANY INDEX, ALTER ANY INDEX,CREATE ANY SEQUENCE,ALTER ANY SEQUENCE, DROP ANY SEQUENCE, CREATE ANY VIEW, DROP ANY VIEW, INSERT ANY TABLE, DELETE ANY TABLE, UPDATE ANY TABLE TO <C##XXX> CONTAINER=ALL;
PostgreSQL
ソース側の権限説明
PostgreSQLデータベースをソースとしてデータ移行を行う場合、増分同期が必要かどうかに応じて、データベースユーザーが持つ必要がある権限も異なります。
構造移行またはフル移行のみ
データ移行タスクに増分同期のステップが含まれない場合、移行ユーザーは移行対象のデータベースに対する読み取り権限を持っている必要があります。権限付与ステートメントは以下のとおりです。
GRANT CONNECT ON DATABASE <database_name> TO <user_name>; GRANT USAGE ON SCHEMA <schema_name> TO <user_name>; GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <user_name>;増分同期を含む場合
データ移行タスクに増分同期のステップが含まれる場合、移行ユーザーは以下のいずれかの条件を満たす必要があります。
方法1:スーパーユーザー(セルフマネージド PostgreSQLでの使用を推奨します)。
-- Create User CREATE USER <user_name> WITH PASSWORD '<password>'; -- Grant superuser privileges ALTER USER <user_name> WITH SUPERUSER;方法2:クラウドベンダーの高権限アカウント(RDS PostgreSQLで使用)。
異なるクラウドベンダーのRDS PostgreSQLインスタンスでは、実際のスーパーユーザーを作成することはできませんが、同等の権限を持つ高権限アカウントを提供しています。
Alibaba Cloud RDS PostgreSQL:データベースユーザーは
pg_rds_superuserロールを持っている必要があります。以下のステートメントで確認できます。SELECT pg_has_role('<user_name>', 'pg_rds_superuser', 'member');AWS RDS PostgreSQL:データベースユーザーは
rds_superuserロールを持っている必要があります。華為クラウドRDS PostgreSQL:データベースユーザーはデフォルトで提供される高権限アカウント
rootです。
説明
- 増分同期にはPostgreSQLインスタンスの論理レプリケーション機能へのアクセスが必要なため、ユーザーはスーパーユーザー権限、またはクラウドベンダーが提供する同等の高権限を持っている必要があります。
- クラウドベンダーのRDS PostgreSQLインスタンスの場合、一部の設定は該当するクラウドコンソールで変更する必要があります。
ターゲット側の権限説明
PostgreSQLデータベースをターゲットとする場合、移行ユーザーは以下の権限を持っている必要があります。
データベース接続権限
GRANT CONNECT ON DATABASE <database_name> TO <user_name>;ターゲットSchemaの使用権限
GRANT USAGE ON SCHEMA <schema_name> TO <user_name>;ターゲットテーブルへの書き込み権限
-- Authorize an Existing Table GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA <schema_name> TO <user_name>; -- Automatically grant privileges on tables created in the future ALTER DEFAULT PRIVILEGES IN SCHEMA <schema_name> GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO <user_name>;
TiDB
TiDBデータベースユーザーの作成
TiDBデータベースにログインします。
CREATE USERステートメントを使用して新しいユーザーを作成します。CREATE USER '<user_name>'@'<host_name>' IDENTIFIED BY '<user_password>';パラメータ説明user_name 作成するユーザー名。 host_name このユーザーがログインできるホスト。任意のホストからデータベースにログインを許可する場合は、パーセント記号(%)を使用します。 user_password 作成するユーザーのパスワード。 例えば、
testという名前のユーザーを作成し、このユーザーが任意のホストからTiDBデータベースにログインできるようにし、ログインパスワードをpasswordに設定します。CREATE USER 'test'@'%' IDENTIFIED BY 'password';GRANTステートメントを使用して、作成したデータベースユーザーに権限を付与します。
ソース側の権限説明
-- The database user must have read permission on the database to be migrated.
GRANT SELECT ON <database_name>.* TO '<user_name>';
-- During incremental synchronization from a TiDB database, the database user must have the REPLICATION CLIENT, REPLICATION SLAVE, and SELECT *.* privileges.
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION];
GRANT SELECT ON *.* TO '<user_name>';
ターゲット側の権限説明
TiDBデータベースがターゲット側となる場合、移行ユーザーは CREATE、CREATE VIEW、INSERT、UPDATE、および DELETE 権限を持っている必要があります。
GRANT <privilege_type> ON <database_name>.<table_name> TO '<user_name>'@'<host_name>' [WITH GRANT OPTION];
パラメータ |
説明 |
|---|---|
| privilege_type | このアカウントにCREATE、INSERT、UPDATEなどの操作権限を付与します。このアカウントにすべての権限を付与する場合は、ALLを使用します。 |
| database_name | データベースの名前。このアカウントにすべてのデータベースの操作権限を付与する場合は、アスタリスク(*)を使用します。 |
| table_name | テーブルの名前。このアカウントにすべてのテーブルの操作権限を付与する場合は、アスタリスク(*)を使用します。 |
| user_name | 権限を付与するアカウント。 |
| host_name | このアカウントがログインできるホスト。任意のホストからログインを許可する場合は、パーセント記号(%)を使用します。 |
| WITH GRANT OPTION | このアカウントに GRANT コマンドを使用する権限を付与します。このパラメータはオプションです。 |
Kafka
Kafkaに認証が存在する場合は、Kafkaデータソースの新規作成を参照してください。
Kafkaをターゲットとして使用する場合、移行ユーザーは以下の操作を実行する権限が必要です:
Topicの作成と表示
Topic Partition情報の表示
レコードの書き込み
レコードの読み取り
Lindorm
Lindormインスタンスにはデフォルトでrootとcolumnar_internal_userの2つのユーザーが存在し、両方とも全権限を持っています。実際のニーズに応じて、専用の移行ユーザーを作成して権限を付与することもできます。権限の付与レベルは、グローバル、Namespace、またはTableを選択できます。
Lindormインスタンスユーザーの作成
Lindorm管理コンソールにログインします。
インスタンス一覧ページで、対象インスタンスのIDをクリックします。
インスタンス詳細ページで、左側のナビゲーションバーのアクセス制御をクリックし、クライアントIPを許可リストに追加します。
ifconfigコマンドでクライアントIPを取得します。アクセス制御 > 許可リストタブで、対象グループの後ろのグループの変更をクリックします。
新しいグループを追加する必要がある場合は、グループ許可リストの作成をクリックして関連設定を行うこともできます。詳細については、許可リストの設定を参照してください。
**OK**をクリックします。
Lindorm Insightページにアクセスします。
アクセス制御ページで、左側のナビゲーションバーのワイドテーブルエンジンをクリックします。
ワイドテーブルエンジンページの右側にあるクラスタ管理エリアで、ClusterManagerパブリックをクリックします。
説明
Lindorm Insightページに初めてログインする場合は、ワイドテーブルエンジンページの右側にあるクラスタ管理エリアで、UIアクセスパスワードのリセットをクリックし、Lindorm Insightページのログインパスワードを設定してから、ClusterManagerパブリックをクリックしてください。
ポップアップウィンドウで、クライアントIPが許可リストに追加されており、初回ログイン時にパスワードがリセットされたことを確認したら、**確認**をクリックします。
ログインダイアログボックスに、**ユーザー名とパスワード**を入力します。
**ログイン**をクリックします。
新規ユーザーの作成
Lindorm Insightページで、左側のナビゲーションバーのデータ管理 > ユーザー管理をクリックします。
ユーザー管理ページで、新規ユーザーをクリックします。
新規ユーザー作成ダイアログボックスで、**ユーザー名とパスワードを入力し、OK**をクリックします。
作成が成功すると、ユーザー管理ページで新規作成されたユーザーを確認できます。
ソース側の権限説明
Lindormインスタンスをソース側として使用する場合、Lindormデータソース作成時にユーザー名を入力するためのLindormインスタンスユーザーを作成する必要があります。ソース側のユーザーにはREAD権限が必要であり、READ権限はGET、SCAN、テーブル記述クエリなどの読み取り操作に使用されます。
構造移行、フル移行、およびフル検証の各段階では、READ権限が必要です。
増分同期の段階では、特別な設定は不要で、デフォルトの権限で利用できます。
権限付与の操作手順は以下のとおりです(グローバル権限を例にします):
ユーザー管理ページで、対象ユーザーの後ろにある さらに表示 > グローバル権限の付与 をクリックします。
namespaceやtableに対する権限付与も可能です。詳細については、権限管理を参照してください。
グローバル権限の付与ダイアログで、READ を選択します。
わかりました をクリックすると、ユーザー権限の設定は完了です。
ターゲット側の権限説明
Lindormインスタンスがターゲット側として使用される場合、Lindormデータソースの作成時にユーザー名を入力するためのLindormインスタンスユーザーを作成する必要があります。ターゲット側のユーザーにはREAD権限とWRITE権限が必要です。READ権限はGET、SCAN、テーブル記述クエリなどの読み取り操作に使用されます。WRITE権限はPUT、BATCH、DELETE、INCREMENT、APPENDなどの書き込み操作に使用されます。
- 現在、増分同期がサポートされており、READ権限とWRITE権限が必要です。
権限付与の操作手順は以下のとおりです(グローバル権限を例にします):
ユーザー管理ページで、対象ユーザーの後ろにある その他 > グローバル権限の付与 をクリックします。
namespaceやtableに対する権限付与も可能です。詳細については、権限管理を参照してください。
グローバル権限の付与ダイアログで、READ と WRITE を選択します。
HBase
HBase Enhanced Editionインスタンスを作成すると、デフォルトでrootユーザーが存在し、すべての権限(read、write、admin、trash、systemを含む)を持ちます。HBase Enhanced EditionインスタンスのデータをOceanBaseデータベースのHBase API互換モードにデータ転送・移行する際には、実際のニーズに応じてユーザーを作成し権限を付与できます。
HBase Enhanced Editionインスタンスユーザーの作成
HBaseコンソールにログインします。
クラスターリストページで、HBase Enhanced Edition (Lindorm)/2.0の対象クラスターIDをクリックします。
基本情報ページで、左側のナビゲーションバーのアクセス制御をクリックし、クライアントIPを許可リストに追加します。
ifconfigコマンドでクライアントIPを取得します。
アクセス制御 > 許可リスト設定タブで、対象グループの下のグループ許可リストの変更をクリックします。
新しいグループを追加する必要がある場合は、グループ許可リストの追加をクリックして関連設定を行うこともできます。詳細については、許可リストの設定を参照してください。
グループ許可リストの変更ダイアログボックスに、クライアントIPを入力します。
**OK**をクリックします。
Lindorm Insightページにアクセスします。
アクセス制御ページで、左側のナビゲーションバーのクラスタ管理をクリックします。
クラスタ管理ページで、ClusterManagerパブリックをクリックします。
説明
Lindorm Insightページに初めてログインする場合は、**ワイドテーブルエンジン**ページの右側にあるクラスタ管理エリアで、UIアクセスパスワードのリセットをクリックし、Lindorm Insightページのログインパスワードを設定してから、ClusterManagerパブリックをクリックしてください。
ログインダイアログボックスに、**ユーザー名とパスワード**を入力します。
**ログイン**をクリックします。
新規ユーザーを追加します。
Lindorm Insightページで、左側のナビゲーションバーのデータ管理 > ユーザー管理をクリックします。
ユーザー管理ページで、右上の新規ユーザーをクリックします。
新規ユーザー作成ダイアログボックスで、**ユーザー名とパスワード**を入力します。
**確定**をクリックします。
作成が成功すると、ユーザー管理ページで新規ユーザーを確認できます。
ソース側の権限説明
HBaseインスタンスをソース側とする場合、HBaseデータソース作成時にユーザー名として入力するためのHBaseインスタンスユーザーを作成する必要があります。ソース側のユーザーにはREAD権限が付与されていなければなりません。READ権限はGET、SCAN、テーブル説明クエリなどの読み取り操作に使用されます。
構造移行、フル移行、およびフル検証の各段階では、READ権限が必要です。
増分同期の段階では、特別な設定は不要で、デフォルトの権限で十分です。
権限付与の手順は以下のとおりです(グローバル権限を例とします):
ユーザー管理ページで、対象ユーザーの後ろにある その他 > グローバル権限の付与 をクリックします。
namespaceまたはtableに対しても権限を付与できます。詳細については、権限管理を参照してください。
グローバル権限付与ダイアログで、READ を選択します。
確認する をクリックすると、ユーザー権限の設定が完了します。
ターゲット側の権限要件
HBaseインスタンスをターゲット側とする場合、HBaseデータソース作成時にユーザー名として入力するためのHBaseインスタンスユーザーを作成する必要があります。ターゲット側のユーザーにはREADおよびWRITE権限が付与されていなければなりません。READ権限はGET、SCAN、テーブル説明クエリなどの読み取り操作に使用されます。WRITE権限はPUT、BATCH、DELETE、INCREMENT、APPENDなどの書き込み操作に使用されます。
- 現在、増分同期がサポートされており、READおよびWRITE権限が必要です。
権限付与の手順は以下のとおりです(グローバル権限を例とします):
ユーザー管理ページで、対象ユーザーの後ろにある もっと > グローバル権限の付与 をクリックします。
namespaceまたはtableに対しても権限を付与できます。詳細については、権限管理を参照してください。
グローバル権限付与ダイアログで、READ と WRITE を選択します。
DataHub
DataHubはAlibaba Cloud RAMを用いてアクセス制御を行います。ユーザーによるDataHubリソースへのアクセスは、RAMによって認証されます。Alibaba Cloudのメインアカウントは所属リソースのすべての権限を有しており、サブユーザーは作成時には一切の権限を持たず、どのリソースにもアクセスできません。ユーザーはRAM内でそのサブユーザーに対する権限付与操作を行う必要があります。詳細については、DataHub権限制御を参照してください。
ターゲット側の権限説明
DataHubがターゲット側となる場合、移行ユーザーは以下のカスタム権限ポリシーを備えている必要があります。
RAMアクセス制御コンソールにログインします。
IP許可リストを追加するカスタム権限ポリシーを作成します。
RAMアクセス制御コンソールに戻ります。
左側のナビゲーションバーで、権限管理 > 権限ポリシー を選択します。
権限ポリシーの作成 をクリックします。
設定画面で、スクリプト編集 タブをクリックします。
入力ボックス内の既存コードを削除し、以下のJSONコードをコピーして貼り付け、必要なIPアドレスを設定します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "datahub:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "xx.xx.xx.xx", "xx.xx.xx.xx/24" ] } } } ] }"Action": "datahub:*":DataHubのすべての操作権限(読み書き、管理)を付与することを示します。"Resource": "*":このアカウント配下のすべてのDataHub ProjectとTopicへのアクセスを許可することを示します。"acs:SourceIp": [...]":アクセスのIP許可リストを追加します。IP許可リスト制限が不要な場合は、Conditionフィールド全体を削除する必要があります。
RAMユーザーにDataHub権限を付与します。
左側のナビゲーションバーで、アイデンティティ管理 > ユーザー をクリックします。
権限を付与するRAMユーザーを見つけ、ユーザー名をクリックします。
ユーザー詳細ページで、権限管理 タブをクリックし、権限の追加 ボタンをクリックします。
ポップアップパネルで、カスタムポリシー を選択します。
検索ボックスにDataHubと入力し、前の手順で新規作成したIP権限ポリシーを選択して、OK をクリックします。
RAMユーザーのAccessKeyを取得または作成します。現在のユーザーにAccessKeyが既に存在する場合は、そのまま使用できます。
ユーザー詳細ページに戻り、認証管理 タブをクリックします。
AccessKey 領域でAccessKey IDとAccessKey Secretを取得します。
AccessKeyが既にある場合は、そのまま使用できます。
AccessKeyがない場合は、AccessKeyを作成 をクリックし、セキュリティ検証を完了するとAccessKey IDとAccessKey Secretが表示されます。
注意
AccessKeyの秘密鍵は、必ずすぐに保存してください。秘密鍵は作成時に一度だけ表示され、閉じた後は取得できません。