【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1
【问题描述】如何在 sys 租户下查询所有的 database,通过 SELECT * FROM oceanbase.__all_database; 只能看到当前租户下的。
1 个赞
根据文档库中的信息,sys
租户是 OceanBase 数据库中的一个特殊租户,包含了所有的系统级别对象和元数据信息。为了查询所有租户的数据库信息,可以使用以下方法:
-
查询
oceanbase.CDB_OBJECTS
视图
在sys
租户下,可以通过查询oceanbase.CDB_OBJECTS
视图来获取所有租户的数据库对象信息。此视图在系统租户下展示所有租户的对象信息。具体 SQL 语句如下:SELECT owner, object_name, object_type FROM oceanbase.CDB_OBJECTS WHERE object_type = 'DATABASE';
-
owner
:表示数据库对象的所有者。 -
object_name
:表示数据库对象的名称。 -
object_type
:表示对象类型,这里我们过滤出类型为DATABASE
的对象。
-
-
查询
oceanbase.DBA_OB_TENANTS
视图
如果需要进一步了解每个租户的基本信息(包括租户 ID、名称等),可以查询oceanbase.DBA_OB_TENANTS
视图。此视图展示了所有租户的基本信息,包括系统租户、用户创建的租户以及 Meta 租户。具体 SQL 语句如下:SELECT tenant_id, tenant_name, tenant_type FROM oceanbase.DBA_OB_TENANTS;
-
注意事项
- 默认情况下,
__all_database
只会显示当前租户下的数据库信息。如果需要查看所有租户的数据库信息,请使用上述系统视图。 - 确保当前连接的是
sys
租户,因为只有在sys
租户下才能访问这些系统级别的视图。
- 默认情况下,
以上方法可以帮助您在测试环境中通过 sys
租户查询到所有的数据库信息。如果您还有其他疑问,请随时提出!
检索到的文档如下:
1 个赞
__all_virtual_databases呢
2 个赞
__all_virtual_database 可以查询全部租户的database
1 个赞