データ移行機能を使用してデータを移行する前に、すべてのデータソースにデータベースユーザーが作成されており、適切な権限を持っていることを確認してください。
ソース側の権限について
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>';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 <database_name>.* TO <drc_user>;
ターゲット側の権限について
ここで作成するOceanBaseデータベースユーザーは、OceanBase MySQL Compatible Modeデータソースを作成する際に、データベースアカウント に入力します。
システム管理者としてOceanBaseデータベースにログインし、以下のコマンドを実行します。
-- OceanBaseデータベースに、データ移行用のユーザーを作成します。
CREATE USER '<username>' IDENTIFIED BY '<password'>
-- ターゲットデータベースに対してCREATE、CREATE VIEW、SELECT、INSERT、UPDATE、ALTER、INDEX、DELETE権限を付与します。
GRANT CREATE,CREATE 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 <database_name>.* 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コマンドを使用する権限を付与します。このパラメータはオプションです。 |
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のプラガブルデータベース(Pluggable DataBase、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以降の非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ロールを持っている必要があります。テンセントクラウド TencentDB Postgres:データベースユーザーは
pg_tencentdb_superuserロールを持っている必要があります。ハワエイクラウド 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を取得します。
アクセス制御 > 許可リストタブで、対象グループの後ろのグループの変更をクリックします。
グループを追加する必要がある場合は、グループアローリスト作成 をクリックして設定を行うこともできます。詳細については、アローリストの設定をご参照ください。
わかりました をクリックします。
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を入力します。
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 を選択します。