基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
字典视图
更新时间:2026-07-15 20:42:45
OceanBase 数据库 Oracle 模式下的数据字典是一组只读的表,提供有关数据库的管理元数据。
字典视图简介
OceanBase 数据库 Oracle 模式下的数据字典由系统表和字典视图组成,它是数据库的重要组成部分。
系统表存储有关数据库的信息,只有 OceanBase 数据库能写入和读取这些表。用户很少直接访问系统表,因为它们是面向内部实现机制的,不易读,而且版本之间不保证外部兼容。
字典视图将系统表数据解码为有用的信息,例如将用户名或者表名作为联接键和 WHERE 子句的过滤条件来简化系统表信息。视图包含数据字典中所有对象的名称和描述。某些视图可供所有数据库用户访问,而其他视图仅供管理员使用。
数据字典包含但不限于如下信息:
数据库中每个 Schema 对象的定义,包括列的默认值和完整性约束信息。
为 Schema 对象分配和当前使用的存储空间。
数据库用户的名称、授予用户的权限和角色以及与用户相关的审计信息。
字典视图的组成
字典视图一般由下表所示的信息组成。
| 前缀 | 权限 | 内容 | 其他信息 |
|---|---|---|---|
| DBA_ | 数据库管理员 | 所有对象 | 某些 DBA_ 视图具有包含对管理员有用的信息的附加列。 |
| ALL_ | 所有用户 | 用户持有权限的对象 | 包括用户拥有的对象。 |
| USER_ | 所有用户 | 用户拥有的对象 | 带有前缀 USER_ 的视图通常不包括列 OWNER。 |
带有 ALL_ 前缀的视图
前缀为 ALL_ 的视图用于用户对数据库的整体概览。除了用户拥有的 Schema 对象之外,这些视图还返回通过公开或显式授权给用户的 Schema 对象。
带有 DBA_ 前缀的视图
前缀为 DBA_ 的视图显示整个数据库中的所有相关信息。DBA_ 视图需要使用管理员权限访问。
带有 USER_ 前缀的视图
普通数据库用户最常用的视图是前缀为 USER_ 的视图。
此类视图具有如下特点:
在数据库中引用用户的私有环境,包括关于用户创建的模式对象、用户授予的权限等的元数据。
仅显示与用户相关的行,返回
ALL_视图中信息的子集。具有与其他视图相同的列,但是隐含列
OWNER。为方便起见,可以缩写
PUBLIC同义词。
字典视图的工作机制
Oracle 模式下用户的 SYS 用户拥有数据字典的所有基表和用户可访问的视图。每个 Oracle 租户在创建时候,都默认会有 SYS 用户。
在数据库操作过程中,数据库系统读取数据字典,以确定 Schema 对象是否存在,以及用户是否有适当的访问权限。在 Oracle 模式下,通过不断更新数据字典来反映数据库结构、审核、授权和数据的变化。
例如,如果用户 hr 创建一个名为"实习生"的表,则数据库会向数据字典添加新行,以反映新表、列、段、数据块以及 hr 对该表拥有的权限。下次查询字典视图时,此新信息仍然可见。
数据字典基表中的数据是 Oracle 模式下正常运行所必需的。只有数据库本身应写入或更改数据字典信息。任何 Oracle 模式下用户都不应更改 SYS 用户的 Schema 中包含的行或 Schema 对象,因为此类操作可能会损害数据完整性,所以安全管理员必须严格控制。
字典视图的存储
在 OceanBase 数据库中,将每个租户元数据作为一个整体存储的数据字典仅存储在每个租户字典信息中。
由于存储指定租户元数据的数据字典存储在此租户专用的字典表中,因此每组数据字典都存储在自己租户的专用字典表中。