データ移行機能を使用してデータを移行する前に、すべてのデータソースにデータベースユーザーが作成されており、適切な権限を持っていることを確認してください。
ソース側の権限について
OceanBaseデータベースのMySQL互換モードで、フラッグシップ版インスタンス をソースとして使用する場合は、OceanBaseデータベースのユーザーを作成する必要があります。
OceanBaseデータベースのMySQL互換モードで、セルフマネージドデータベース をソースとして使用する場合は、OceanBaseデータベースのユーザーとsysテナントユーザー(オプション)を作成する必要があります。
OceanBaseデータベースユーザーの作成と権限付与
ここで作成するOceanBaseデータベースユーザーは、インスタンスタイプ が フラッグシップ版インスタンス または オンプレデータベース のOceanBase MySQL Compatible Modeデータソースを作成する際に、データベースアカウント に入力するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- ソース側の業務テナントに、データ移行用のユーザーを作成します。 CREATE USER '<user_name>' IDENTIFIED BY '<password'> -- GRANTステートメントを使用して、作成したデータベースユーザーに、移行元データベースのSELECT権限を付与します。 GRANT SELECT ON <database_name>.* TO '<user_name': -- OceanBaseデータベースのMySQL互換モードV4.0.0以降のバージョンを使用する場合は、oceanbaseデータベースのSELECT権限も追加する必要があります。 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データソースを作成する際に、詳細設定 > sysテナントアカウント が有効になっている場合に、システムアカウント に入力するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- sysテナントにユーザーを作成し、OceanBaseデータベースの増分ログデータとデータベースオブジェクト構造情報を読み取るために使用します。 CREATE USER <drc_user> IDENTIFIED BY '<drc_password>; -- GRANTステートメントを使用して、作成したデータベースユーザーにSELECT ON *.*権限を付与します。 GRANT SELECT ON *.* TO <drc_user>;
ターゲット側の権限について
ここで作成するOceanBaseデータベースユーザーは、OceanBase MySQL Compatible Modeデータソースを作成する際に、データベースアカウント に入力するために使用されます。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- OceanBaseデータベースに、データ移行用のユーザーを作成します。
CREATE USER '<username>' IDENTIFIED BY '<password'>
-- ターゲットデータベースに対して、CREATE、CREATE VIEW、DROP VIEW、SELECT、INSERT、UPDATE、ALTER、INDEX、DELETE権限を付与します。
GRANT CREATE,CREATE VIEW,DROP VIEW,SELECT,INSERT,UPDATE,ALTER,INDEX,DELETE ON <database_name>.* TO '<user_name'
-- テナント全体に対して、SELECT権限を付与します。
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データベースユーザーは、インスタンスタイプ が フラッグシップ版インスタンス または オンプレデータベース のOceanBase Oracle Compatible Modeデータソースを作成する際に、データベースアカウント に入力します。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- ソース側の業務テナントに、データ移行用のユーザーを作成します。 CREATE USER '<user_name>' IDENTIFIED BY <password>; -- GRANTステートメントを使用して、作成したデータベースユーザーにDBA権限を付与します。 GRANT DBA TO '<user_name'> -- OceanBaseデータベースのOracle互換モードV4.0.0以降では、ソース側の移行ユーザーにはDBA_OB_ARCHIVELOGのSELECT権限も必要です。 GRANT SELECT ON DBA_OB_ARCHIVELOG TO '<user_name>'; -- OceanBaseデータベースのOracle互換モードV4.2.0以降では、ソース側の移行ユーザーにはDBA_OB_TABLE_LOCATIONSのSELECT権限も必要です。 GRANT SELECT ON DBA_OB_TABLE_LOCATIONS TO '<user_name>';sysテナントユーザーの作成と権限付与
OceanBaseのセルフマネージドデータベースを選択し、増分ログデータとデータベースオブジェクト構造情報を読み取る必要がある場合は、ソース側のsysテナントにユーザーを作成してください。
ここで作成するsysテナントユーザーは、インスタンスタイプ が セルフマネージドデータベース のOceanBase Oracle Compatible Modeデータソースを作成する際に、詳細設定 > システムテナントアカウント が有効な場合に、システムアカウント に入力します。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- sysテナントにユーザーを作成し、OceanBaseデータベースの増分ログデータとデータベースオブジェクト構造情報を読み取ります。 CREATE USER <drc_user> IDENTIFIED BY '<drc_password>'; -- GRANTステートメントを使用して、作成したデータベースユーザーにSELECT ON *.*権限を付与します。 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データベースV8.0の場合は、追加でSHOW VIEW権限を付与してください。
GRANT SELECT ON <database_name>.* TO '<user_name'>
-- MySQLデータベースの増分同期時、データベースユーザーはREPLICATION CLIENT、REPLICATION SLAVE、およびSELECT *.*権限が必要です。
-- 増分同期時、ソース側のすべてのテーブルに対する読み取り権限が欠けていると、タスクが異常終了する可能性があります。以下のコマンドにおける[WITH GRANT OPTION]はオプションです。
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データベースをソース側とするフォワード移行とターゲット側とするリバースフローで必要な権限は同じです。
説明
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>; # Oracleデータベースに移行する指定されたテーブルを追加します。 GRANT DELETE, INSERT, UPDATE ON <データベース名>.<テーブル名> TO <user_name>;
12C以降のDBAユーザー権限付与の説明
ユーザーの環境が移行ユーザーにデータベース管理者(DBA)ロールを付与することを許可し、かつOracleデータベースのバージョンが12C以降である場合は、12C/18C/19Cのプラガブルデータベース(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のプラガブルデータベース(PDB)の場合、PDBを取得するアカウントはCommonユーザーである必要があります。
以下のステートメントを実行し、CDB$ROOTに切り替えます。
ALTER SESSION SET CONTAINER=CDB$ROOT;各Commonユーザーは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以降のOracleデータベースにおける非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のプラガブルデータベース(PDB)である場合、PDBからデータを取得するアカウントはCommonユーザーである必要があります。
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データベースをソースとしてデータ移行を行う場合、増分同期が必要かどうかに応じて、データベースユーザーが持つ必要がある権限も異なります。
構造のみの移行またはフル移行
データ移行タスクに増分同期のステップが含まれない場合、移行ユーザーは移行対象のデータベースに対する読み取り権限が必要です。権限付与ステートメントは以下のとおりです。
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 <user_name> WITH PASSWORD '<password'> -- スーパーユーザー権限の付与 ALTER USER <user_name> WITH SUPERUSER;方法2:クラウドベンダーの高権限アカウント(RDS PostgreSQLで使用)。
異なるクラウドベンダーのRDS PostgreSQLインスタンスでは、真正のスーパーユーザーの作成は許可されていませんが、類似の権限を持つ高権限アカウントが提供されています。
アリババクラウドRDS PostgreSQL:データベースユーザーは
pg_rds_superuserロールを持っている必要があります。以下のステートメントで確認できます。SELECT pg_has_role('<user_name>', 'pg_rds_superuser', 'member');AWS RDS PostgreSQL:データベースユーザーは
rds_superuserロールを持っている必要があります。Tencent CloudのTencentDB PostgreSQL:データベースユーザーは
pg_tencentdb_superuserロールを持っている必要があります。Huawei Cloud RDS PostgreSQL:データベースユーザーは、デフォルトで提供される高権限アカウント
rootです。
説明
- 増分同期では、PostgreSQLインスタンスの論理レプリケーション機能にアクセスする必要があるため、ユーザーにはスーパーユーザー権限またはクラウドベンダーが提供する同等の高権限が付与されている必要があります。
- クラウドベンダーのRDS PostgreSQLインスタンスの場合、一部の設定は対応するクラウドコンソールで変更する必要があります。
ターゲット側の権限要件
PostgreSQLデータベースがターゲット側として使用される場合、移行ユーザーは以下の権限を持っている必要があります。
データベースへの接続権限
GRANT CONNECT ON DATABASE <database_name> TO <user_name>;ターゲットスキーマの使用権限
GRANT USAGE ON SCHEMA <schema_name> TO <user_name>;ターゲットテーブルへの書き込み権限
-- 既存のテーブルに権限を付与 GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA <schema_name> TO <user_name>; -- 将来作成されるテーブルに自動的に権限を付与 ALTER DEFAULT PRIVILEGES IN SCHEMA <schema_name> GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO <user_name>;
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ステートメントを使用して、作成したデータベースユーザーに権限を付与します。
ソース側の権限説明
-- データベースユーザーは、移行対象のデータベースに対する読み取り権限が必要です。
GRANT SELECT ON <database_name>.* TO '<user_name'>
-- TiDBデータベースの増分同期時には、データベースユーザーはREPLICATION CLIENT、REPLICATION SLAVE、およびSELECT *.*権限が必要です。
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がターゲット側の場合、移行ユーザーは以下の操作を実行する権限が必要です:
Topicの作成と表示
Topic Partition情報の表示
Recordの書き込み
Recordの読み取り
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ページで、左側のナビゲーションバーのデータ管理 > ユーザー管理をクリックします。
ユーザー管理ページで、新規ユーザーをクリックします。
新規ユーザーダイアログボックスで、**ユーザー名とパスワードを入力し、確定**をクリックします。
作成が成功すると、ユーザー管理ページで新規ユーザーを確認できます。
ソース側の権限説明
Lindormインスタンスがソース側となる場合、Lindormデータソース作成時にユーザー名を入力するためのLindormインスタンスユーザーを作成する必要があります。ソース側ユーザーにはREAD権限が付与されている必要があります。READ権限はGET、SCAN、テーブル記述クエリなどの読み取り操作に使用されます。
構造移行、フル移行、フル検証の各段階では、READ権限が必要です。
増分同期の段階では、特別な設定は不要で、デフォルトの権限で利用できます。
権限付与の手順は以下のとおりです(グローバル権限を例にします)。
ユーザー管理ページで、対象ユーザーの後ろにある さらに表示 > グローバル権限の付与 をクリックします。
namespaceやtableに対する権限付与も可能です。詳細については、権限管理を参照してください。
グローバル権限付与ダイアログで、READ を選択します。
OK をクリックすると、ユーザー権限の設定が完了します。
ターゲット側の権限説明
Lindormインスタンスがターゲット側となる場合、Lindormデータソース作成時にユーザー名として入力するためのLindormインスタンスユーザーを作成する必要があります。ターゲット側のユーザーにはREADとWRITEの権限が必要です。READはGET、SCAN、テーブル記述クエリなどの読み取り操作に使用され、WRITEはPUT、BATCH、DELETE、INCREMENT、APPENDなどの書き込み操作に使用されます。
- 現在、増分同期がサポートされており、READとWRITEの権限が必要です。
権限付与の手順は以下のとおりです(グローバル権限を例にします)。
ユーザー管理ページで、対象ユーザーの後ろにある もっと > グローバル権限の付与 をクリックします。
namespaceやtableに対する権限付与も可能です。詳細については、権限管理を参照してください。
グローバル権限付与ダイアログで、READ と WRITE を選択します。
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を入力します。
確定 をクリックします。
Lindorm Insightページに進みます。
アクセス制御ページで、左側のナビゲーションバーの クラスタ管理 をクリックします。
クラスタ管理ページで、ClusterManager公網をクリックします。
注意
Lindorm Insightページに初めてログインする場合は、ワイドテーブルエンジンページの右側にあるクラスタ管理エリアで、UIアクセスパスワードをリセットし、Lindorm Insightページのログインパスワードを設定してから、ClusterManager公網をクリックしてください。
ログインダイアログボックスに、**ユーザー名とパスワード**を入力します。
**ログイン**をクリックします。
新規ユーザーの追加。
Lindorm Insightページで、左側のナビゲーションバーのデータ管理>ユーザー管理をクリックします。
ユーザー管理ページで、右上の新規ユーザーをクリックします。
新規ユーザー作成ダイアログボックスに、**ユーザー名とパスワード**を入力します。
**OK**をクリックします。
作成が成功すると、ユーザー管理ページで新規ユーザーを確認できます。
ソース側の権限説明
HBaseインスタンスをソース側とする場合、HBaseデータソースの作成時にユーザー名を入力するためのHBaseインスタンスユーザーを作成する必要があります。ソース側のユーザーにはREAD権限が付与されていなければなりません。READ権限はGET、SCAN、テーブル記述クエリなどの読み取り操作に使用されます。
構造移行、フル移行、フル検証の各段階では、READ権限が必要です。
増分同期の段階では、特別な設定は不要で、デフォルトの権限で利用できます。
権限付与の操作手順は以下のとおりです(グローバル権限を例にします):
ユーザー管理ページで、対象ユーザーの後ろにある**もっと**>グローバル権限の付与をクリックします。
namespaceやtableに対しても権限を付与できます。詳細については、権限管理を参照してください。
グローバル権限付与ダイアログボックスで、READを選択します。
**OK**をクリックすると、ユーザー権限の設定が完了します。
ターゲット側の権限説明
HBaseインスタンスがターゲット側となる場合、HBaseデータソース作成時にユーザー名を入力するためのHBaseインスタンスユーザーを作成する必要があります。ターゲット側ユーザーはREADおよびWRITE権限を持っている必要があります。READ権限はGET、SCAN、テーブル記述クエリなどの読み取り操作に使用されます。WRITE権限はPUT、BATCH、DELETE、INCREMENT、APPENDなどの書き込み操作に使用されます。
- 現在、増分同期がサポートされており、READおよびWRITE権限が必要です。
権限付与の操作は以下のとおりです(グローバル権限を例にします):
ユーザー管理ページで、対象ユーザーの後ろにある もっと > グローバル権限の付与 をクリックします。
namespaceまたはtableに対しても権限を付与できます。詳細については、権限管理を参照してください。
グローバル権限の付与ダイアログボックスで、READ と WRITE を選択します。