在 KingbaseES 中(类似于 PostgreSQL 的架构),information_schema.schemata
查询返回了当前数据库中的所有 schema(模式),包括默认和系统自动创建的 schema。以下是每个 schema 的功能简要解析:
✅ 系统相关 schema
Schema 名称 | 作用 |
---|---|
pg_catalog | 系统 catalog,存储所有数据库对象的定义(如表、列、函数、类型等),是 PostgreSQL 和 KingbaseES 的核心系统 schema。 |
information_schema | 标准 SQL 定义的 schema,提供关于数据库对象的视图(如表、列、约束、权限等),主要用于跨数据库系统的兼容性。 |
pg_toast | 存储超大字段(TOAST:The Oversized-Attribute Storage Technique)。PostgreSQL/Kingbase 自动将超过一定大小的数据字段分离并存储于此。 |
pg_toast_temp_1 | 临时 TOAST 存储,用于会话中临时表的超大字段。 |
pg_temp_1 | 当前会话的临时 schema,用于临时表和对象,不同会话互相隔离。 |
pg_bitmapindex | 用于 bitmap 索引的相关结构,KingbaseES 特有(PostgreSQL 原版中没有)。 |
xlog_record_read | 提供对 WAL(Write-Ahead Logging)记录的解析或访问接口,常用于审计或数据恢复。 |
✅ 用户相关 schema
Schema 名称 | 作用 |
---|---|
public | 所有用户默认可用的 schema。新建对象如果不显式指定 schema,会默认放在这里。 |
rdsadmin | 用于 RDS(如 Kingbase 云服务)的管理 schema,通常由云平台使用,包含维护或监控视图和函数。 |
sysaudit | 用于审计日志管理,存储系统审计信息(如用户操作、数据访问日志等)。 |
src_restrict | 可能是源数据权限限制策略相关 schema,具体依赖于数据库的安全审计配置。 |
sysmac | 系统安全模块相关 schema(例如 MAC:Mandatory Access Control 强制访问控制)。Kingbase 支持增强的安全特性,此 schema 存放相关策略与数据。 |
anon | 用于数据脱敏与匿名化的 schema,包含对用户数据的脱敏处理规则与函数。KingbaseES 支持内建的数据脱敏功能。 |
小贴士:
- 并非所有 schema 都需要手动操作或修改。系统 schema 一般不建议用户修改。
- 安全相关的 schema(如
sysmac
、anon
)表明数据库可能启用了增强的安全机制或合规性功能。 public
是普通用户开发最常用的 schema,建议根据实际需求创建和使用独立 schema。
如需对某个 schema 进一步分析(如其内部包含哪些表、视图、函数等),可以查询:
-- 查看某 schema 中的所有表
SELECT tablename FROM pg_tables WHERE schemaname = 'anon';