このドキュメントでは、OBKV-Tableの開発に向けた準備作業について説明します。OBKV-Tableクライアントを使用してクラスタにアクセスする前に、テナントの作成、データベースの作成、テーブルの作成、ユーザーの作成などの操作が必要です。また、OBKV-Tableは直接接続とODPの2種類の接続モードをサポートしており、異なる接続モードでは追加の準備作業も異なります。
注意
OBKV-TableはJavaクライアントのみをサポートしています。
共通の準備作業
テナントの作成
詳細については、テナントの作成を参照してください。
データベースの作成
詳細については、データベースの作成を参照してください。
テーブルの作成
詳細については、テーブルの作成を参照してください。
ユーザーの作成
詳細については、ユーザーの作成を参照してください。
直接接続モードの追加準備作業
システムテナントユーザーの作成とルーティングテーブルへのアクセス権限付与
OBKV-Table直接接続モードでは、クライアントはルーティングテーブルにアクセスしてユーザーテーブルのパーティションルーティング情報を取得し、ルーティングを行います。OceanBaseでは、SYSテナントのユーザーのみがルーティングテーブルにアクセスする権限を持っているため、SYSテナントでユーザーを作成し、そのユーザーにルーティングテーブルへのアクセス権限を付与する必要があります。rootユーザーはあらかじめルーティングテーブルへのアクセス権限を持っています。
ユーザーの作成
ユーザー作成の構文と例については、ユーザーの作成を参照してください。
最小限のデータベース権限を持つユーザーtest_sys_userを作成する例を以下に示します:
obclientを使用してrootユーザーでSYSテナントに接続する
-h はホストアドレスを表します。 -u はユーザー名を表します。 -P はポートを表します。 -p はパスワードを表します。 -c は自動補完機能を使用しないことを表し、接続速度を向上させ、不要なシステムリソースの消費を減らすことができます。 -A はクラスターに接続することを表します。 -D はSYSテナントに接続することを表します。 obclient -h10.10.10.1 -uroot@$obkvcluster -P2883 -p****** -c -A -D SYSユーザーの作成
CREATE USER 'test_sys_user'@'%' IDENTIFIED BY 'test_sys_password';
ルーティングテーブルへのアクセス権限付与
ユーザーは以下のルーティングテーブルに対するSELECT権限を持っている必要があります:
__all_virtual_table__all_virtual_proxy_schema__all_tenant__all_virtual_proxy_partition_info__all_virtual_proxy_partition__all_server__all_virtual_proxy_sub_partition__all_virtual_proxy_server_statDBA_OB_SERVERSDBA_OB_ZONESCDB_OB_TABLEGROUP_TABLESDBA_OB_TENANTSCDB_OB_TABLET_TO_LS
SYSテナントでデータベースに接続した後、ユーザーtest_sys_userに指定されたルーティングテーブルのSELECT権限を付与します。
GRANT SELECT ON oceanbase.__all_virtual_table TO test_sys_user;
GRANT SELECT ON oceanbase.__all_virtual_proxy_schema TO test_sys_user;
GRANT SELECT ON oceanbase.__all_tenant TO test_sys_user;
GRANT SELECT ON oceanbase.__all_virtual_proxy_partition_info TO test_sys_user;
GRANT SELECT ON oceanbase.__all_virtual_proxy_partition TO test_sys_user;
GRANT SELECT ON oceanbase.__all_server TO test_sys_user;
GRANT SELECT ON oceanbase.__all_virtual_proxy_sub_partition TO test_sys_user;
GRANT SELECT ON oceanbase.__all_virtual_proxy_server_stat TO test_sys_user;
GRANT SELECT ON oceanbase.DBA_OB_SERVERS TO test_sys_user;
GRANT SELECT ON oceanbase.DBA_OB_ZONES TO test_sys_user;
GRANT SELECT ON oceanbase.CDB_OB_TABLEGROUP_TABLES TO test_sys_user;
GRANT SELECT ON oceanbase.DBA_OB_TENANTS TO test_sys_user;
GRANT SELECT ON oceanbase.CDB_OB_TABLET_TO_LS TO test_sys_user;