基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
OceanBase 数据库 Oracle 租户 OBClient connect 用法
更新时间:2026-06-03 03:01
总结说明
在 Oracle SQLPlus 命令行中,可以通过 connect 连接指定数据库。 作为 OceanBase 命令行工具,连接 OceanBase Oracle 时,obclient 兼容 Oracle SQLPlus connect 基本用法。 本文结合 Oracle SQLPlus connect 用法,基于 obclient 2.2.8 介绍 obclient connect 用法,建议使用 obclient 最新版本。
注意
OBClient V2.2.8 及以上版本通过 connect 连接的行为同 Oracle SQLPlus,既切换数据库也切换用户。如涉及 OBClient 升级参考 OBClient V2.2.7 及之前版本升级注意事项部分。
详细说明
创建测试用户
分别在 Oracle 和 OceanBase Oracle 中创建两个测试用户。
CREATE USER alvin IDENTIFIED BY alvin;
GRANT DBA TO alvin;
CREATE USER tom IDENTIFIED BY tom;
GRANT DBA TO tom;
基本常用场景,测试如下两个 SQL。
SELECT user FROM dual;
SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
Oracle SQLPlus 用法
用法一 指定用户名
connect tom/tom
测试结果如下。
SQL*Plus: Release 11.2.0.1.0 Production on Fri Oct 18 20:11:54 2024
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> SELECT user FROM dual;
USER
--------------------------------------------------------------------------------
ALVIN
SQL> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
SCHEMAID
----------
110
SQL> connect tom/tom
Connected.
SQL> SELECT user FROM dual;
USER
--------------------------------------------------------------------------------
TOM
SQL> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
SCHEMAID
----------
114
用法二 指定 Service Name
connect tom/tom@orcl
测试结果如下。
SQL*Plus: Release 11.2.0.1.0 Production on Fri Oct 18 20:11:54 2024
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> SELECT user FROM dual;
USER
--------------------------------------------------------------------------------
ALVIN
SQL> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
SCHEMAID
----------
110
SQL> connect tom/tom@orcl
Connected.
SQL> SELECT user FROM dual;
USER
--------------------------------------------------------------------------------
TOM
SQL> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
SCHEMAID
----------
114
用法三 Easy Connect 方式
connect tom/tom@10.10.20.20:1521/orcl
测试结果如下。
SQL*Plus: Release 11.2.0.1.0 Production on Fri Oct 18 20:11:54 2024
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> SELECT user FROM dual;
USER
--------------------------------------------------------------------------------
ALVIN
SQL> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
SCHEMAID
----------
110
SQL> connect tom/tom@10.10.20.20:1521/orcl
Connected.
SQL> SELECT user FROM dual;
USER
--------------------------------------------------------------------------------
TOM
SQL> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
SCHEMAID
----------
114
OBClient connect 用法
以如下 OceanBase Oracle 租户连接为例。
obclient -h10.10.20.20 -P2883 -uALVIN@oboraclegbk#obcluster421 -A -pALVIN
用法一 指定用户名
仅指定用户名和密码,默认连接当前租户。
connect tom/tom
注意
OBClient V2.2.8 开始兼容此用法,建议使用 OBClient 最新版本。
测试结果如下。
Server version: OceanBase 4.2.1.9 (r109000092024091919-9e4708744c35a06376fd4289b995cf1ae70698d7) (Built Sep 19 2024 19:51:11)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> connect tom/tom
Connection id: 414510
Current database: TOM
obclient(TOM@oboraclegbk)[TOM]> SELECT user FROM dual;
+------+
| USER |
+------+
| TOM |
+------+
1 row in set (0.003 sec)
obclient(TOM@oboraclegbk)[TOM]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500179 |
+----------+
1 row in set (0.003 sec)
用法二 指定租户名
同租户切换连接。
connect tom@oboraclegbk#obcluster421/tom
测试结果如下。
Server version: OceanBase 4.2.1.9 (r109000092024091919-9e4708744c35a06376fd4289b995cf1ae70698d7) (Built Sep 19 2024 19:51:11)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> conn tom@oboraclegbk#obcluster421/tom
Connection id: 659870
Current database: TOM
obclient(TOM@oboraclegbk)[TOM]> SELECT user FROM dual;
+------+
| USER |
+------+
| TOM |
+------+
1 row in set (0.003 sec)
obclient(TOM@oboraclegbk)[TOM]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500179 |
+----------+
1 row in set (0.003 sec)
跨租户切换连接
connect SYS@oboracle#obcluster421/XXX
测试结果如下。
Server version: OceanBase 4.2.1.9 (r109000092024091919-9e4708744c35a06376fd4289b995cf1ae70698d7) (Built Sep 19 2024 19:51:11)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> connect SYS@oboracle#obcluster421/XXX
Connection id: 659877
Current database: SYS
obclient(SYS@oboracle)[SYS]> SELECT user FROM dual;
+------+
| USER |
+------+
| SYS |
+------+
1 row in set (0.003 sec)
obclient(SYS@oboracle)[SYS]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 201006 |
+----------+
1 row in set (0.003 sec)
用法三 Easy Connect 方式
connect ALVIN@oboracle#obcluster/ALVIN@10.10.20.21:2883
测试结果如下。
Server version: OceanBase 4.2.1.9 (r109000092024091919-9e4708744c35a06376fd4289b995cf1ae70698d7) (Built Sep 19 2024 19:51:11)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.004 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> connect ALVIN@oboracle#obcluster/ALVIN@10.10.20.21:2883
Connection id: 659880
Current database: ALVIN
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.003 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.002 sec)
OBClient 使用须知
OBClient 也支持 connect 简写为 conn。
OBClient connect 命令结果加不加分号(;)均可。
OBClient V2.2.8 开始兼容 OBClient connect 用法一 connect tom/tom 方式,建议使用 OBClient 最新版本。
用法二指定租户名时,connect 使用 OBClient 命令行的端口,即如果命令行使用 2881 连接,则 connect 中不需要指定集群名。
OBClient V2.2.7 及之前版本谨慎使用 OBClient connect 用法,详见下面章节:obclient V2.2.7 及之前版本 connect 使用注意事项。
OBClient V2.2.7 及之前版本 connect 使用注意事项
OBClient V2.2.8 及以上版本通过 connect 连接的行为同 Oracle SQLPlus,既切换数据库也切换用户。 OBClient V2.2.7 及之前版本 connect 欲实现同 Oracle SQLPlus connect tom/tom 方式,需要使用如下两个命令。
connect tom@oboraclegbk#obcluster421/tom
connect tom
或
connect tom@oboraclegbk#obcluster421/tom;connect tom;
详见如下注意事项。
注意事项一
OBClient 2.2.7 及之前版本 connect tom(不指定密码)是 MySQL 方式,只切换数据库,并不切换用户。
obclient(ALVIN@oboraclegbk)[ALVIN]> connect tom
Connection id: 440485
Current database: TOM
OBClient V2.2.7 及之前版本不支持 connect tom/tom(Oracle SQLPlus 方式,OBClient V2.2.8 及之后版本支持)。
obclient(ALVIN@oboraclegbk)[ALVIN]> connect tom/tom
ERROR 1049 (42000): Unknown database 'TOM/TOM'
测试结果如下,对比 Oracle SQLPlus 用法一和 OBClient V2.2.8 connect 用法一可以看出,OBClient V2.2.7 切换前后用户均为 ALVIN。
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.001 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.001 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> connect tom
Connection id: 660074
Current database: TOM
obclient(ALVIN@oboraclegbk)[TOM]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.001 sec)
obclient(ALVIN@oboraclegbk)[TOM]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.001 sec)
注意事项二
OBClient V2.2.7 及之前版本如下指定租户方式,只切换用户,并不切换数据库。
connect tom@oboraclegbk#obcluster421/tom
测试结果如下,从 connect 输出 Current database: ALVIN 结果或对比 status 命令中 Current database: ALVIN 可以看出,并未切换数据库。
Server version: OceanBase 4.2.1.9 (r109000092024091919-9e4708744c35a06376fd4289b995cf1ae70698d7) (Built Sep 19 2024 19:51:11)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient(ALVIN@oboraclegbk)[ALVIN]> status
--------------
obclient Ver 2.2.7 Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 417251
Current database: ALVIN
Current user: ALVIN
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: OceanBase 4.2.1.9 (r109000092024091919-9e4708744c35a06376fd4289b995cf1ae70698d7) (Built Sep 19 2024 19:51:11)
Protocol version: 10
Connection: 10.10.20.20 via TCP/IP
Server characterset: gbk
Db characterset: gbk
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 2883
Active --------------
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+-------+
| USER |
+-------+
| ALVIN |
+-------+
1 row in set (0.001 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500003 |
+----------+
1 row in set (0.001 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> connect tom@oboraclegbk#obcluster421/tom
Connection id: 660095
Current database: ALVIN
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT user FROM dual;
+------+
| USER |
+------+
| TOM |
+------+
1 row in set (0.001 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
+----------+
| SCHEMAID |
+----------+
| 500179 |
+----------+
1 row in set (0.001 sec)
obclient(ALVIN@oboraclegbk)[ALVIN]> status
--------------
obclient Ver 2.2.7 Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 660095
Current database: ALVIN
Current user: TOM
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: OceanBase 4.2.1.9 (r109000092024091919-9e4708744c35a06376fd4289b995cf1ae70698d7) (Built Sep 19 2024 19:51:11)
Protocol version: 10
Connection: 172.20.12.123 via TCP/IP
Server characterset: gbk
Db characterset: gbk
Client characterset: utf8mb4
Conn. characterset: utf8mb4
TCP port: 2883
Active --------------
注意事项三
由于 OBClient V2.2.7 及之前版本 connect tom 是切换用户,并不切换数据库,通过指定租户切换时,如果当前数据库在切换目标中不存在时,会报数据库不存在。
connect tom@oboraclegbk#obcluster421/tom
测试结果如下,因为在目标租户中,并不存在数据库 ALVIN。
obclient(ALVIN@oboraclegbk)[ALVIN]> conn SYS@oboracle#obcluster421/XXX
ERROR 1049 (42000): Unknown database 'ALVIN'
可以通过先切换数据库再切换用户的方式绕过。
obclient(ALVIN@oboraclegbk)[ALVIN]> conn SYS@oboracle#obcluster421/XXX
ERROR 1049 (42000): Unknown database 'ALVIN'
obclient(ALVIN@oboracle)[ALVIN]> conn SYS;
Connection id: 419439
Current database: SYS
obclient(ALVIN@oboracle)[SYS]> conn SYS@oboracle#obcluster421/XXX
Connection id: 660130
Current database: SYS
OBClient V2.2.7 及之前版本升级注意事项
如当前在使用 OBClient V2.2.7 及之前版本,升级至 OBClient V2.2.8 及以上版本后,需要注意如下。
a. 依赖如下函数时,注意升级至 OBClient V2.2.8 及以上版本后,通过 connect 连接后行为同 Oracle SQLPlus,既切换数据库也切换用户。
SELECT user FROM dual;
SELECT userenv('SCHEMAID') SCHEMAID FROM dual;
b. 使用 OBClient V2.2.7 及之前版本时,connect tom 不需要输入密码,仅切换数据库,升级至 OBClient V2.2.8 及以上版本后,通过 connect 连接后行为同 Oracle SQLPlus,需要指定密码,如 connect tom/tom。
c. 使用 OBClient V2.2.7 及之前版本时,connect tom 仅切换数据库,不切换用户,升级至 OBClient V2.2.8 及以上版本后,通过 connect 连接后行为同 Oracle SQLPlus,也切换用户,如遇到用户权限问题,根据需要赋予权限即可。
d. 使用 OBCient V2.2.7 及之前版本时,或使用 OBClient V2.2.8 及以上版本,使用 connect 命令时后新创建的对象的 OWNER 都是一样的,不需要担心。
影响租户
影响 OceanBase 数据库中的 Oracle 租户,对于 SYS 租户和 MySQL 租户无影响。
适用版本
OceanBase 数据库 V3.2.x、V4.2.x、V4.3.x 版本。