首批通过分布式安全可靠测评,为关键业务系统打造
OBKV-Table 开发准备
更新时间:2026-04-15 16:01:32
本文档介绍了 OBKV-Table 的开发准备工作。在使用 OBKV-Table 客户端访问集群之前,需要进行创建租户、创建数据库、创建表、创建用户等操作。此外,OBKV-Table 支持直连和 ODP 两种连接模式,在不同的连接模式下需要进行的额外的准备工作也不相同。
注意
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_stat
- DBA_OB_SERVERS
- DBA_OB_ZONES
- CDB_OB_TABLEGROUP_TABLES
- DBA_OB_TENANTS
- CDB_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;