目 录CONTENT

文章目录

【数据库】KingbaseES 系统级 Schema 体系解析

EulerBlind
2026-01-08 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

引言

在 KingbaseES 的实际使用过程中,无论是进行数据库权限治理、国产数据库替换,还是落地等保、审计与数据安全要求,都绕不开一个基础问题:

如何准确识别和管理系统级 Schema。

由于 KingbaseES 继承了 PostgreSQL 的体系结构,同时又引入了大量国产化、安全增强特性,其系统 Schema 的组成相较于原生 PostgreSQL 更为复杂。如果对这些 Schema 缺乏清晰认知,极易在以下场景中引发问题:

  • 误授权系统 Schema 给业务用户
  • 迁移过程中应用 SQL 直接访问系统对象
  • 审计、脱敏、MAC 功能启用后结构混乱
  • 运维脚本与安全基线设计不规范

本文将对 KingbaseES 默认系统级 Schema 做一次系统梳理,并给出工程化层面的使用建议。


一、系统级 Schema 的判定原则

在 KingbaseES 中,可以采用如下工程实践原则:

public 之外,默认存在的 Schema 均应视为系统级 Schema。

这些 Schema 通常具有以下特征之一:

  • 存放系统目录与元数据
  • 承载数据库内部存储或执行机制
  • 由安全、审计、脱敏等系统模块维护
  • 由云平台或数据库实例管理组件使用

业务对象不应创建在这些 Schema 中,业务用户也不应被授予其写权限。


二、核心系统 Schema

该类 Schema 是 KingbaseES 的基础组成部分,几乎在所有实例中都会存在。

2.1 sys_catalog

sys_catalog 是 KingbaseES 的系统目录 Schema,功能上等价于 PostgreSQL 的 pg_catalog

其主要内容包括:

  • 系统表
  • 系统函数与操作符
  • 数据类型、索引、约束等元数据

sys_catalog 始终隐式存在于 search_path 中,由系统内部维护,原则上只允许读取,不应进行任何人工修改。


2.2 information_schema

information_schema 是 SQL 标准定义的信息模式,提供统一的元数据访问接口。

其特点包括:

  • 以视图形式提供表、列、约束、权限等结构信息
  • 内容来源于系统目录
  • 只读,且默认不在 search_path

该 Schema 通常用于跨数据库兼容的结构查询,是推荐给开发与运维使用的元数据接口。


2.3 pg_toast

pg_toast 用于存储超过页面大小限制的大字段数据(TOAST 机制)。

当表中存在较大字段(如大文本、大对象)时,系统会自动将其拆分并存储于该 Schema 中。
该 Schema 完全由数据库内部使用,用户不应直接访问。


2.4 会话级临时 Schema

KingbaseES 使用以下 Schema 管理临时对象:

  • pg_temp_N
  • pg_toast_temp_N

其中 N 表示会话编号。

这些 Schema 用于存放:

  • 临时表
  • 临时索引
  • 临时对象的 TOAST 数据

会话结束后,相关 Schema 会自动清理。


三、KingbaseES 扩展系统 Schema

以下 Schema 为 KingbaseES 在 PostgreSQL 体系基础上的增强实现。

3.1 sys

sys Schema 提供了一套面向 DBA 的数据字典视图体系,风格上接近 Oracle。

其内容通常包括:

  • 用户与角色信息
  • 表、索引、视图元数据
  • 会话、锁、运行状态信息

该 Schema 中对象通常为只读视图,底层数据仍来源于 sys_catalog,主要用于运维和管理。


3.2 pg_bitmapindex

pg_bitmapindex 是 KingbaseES 位图索引实现的内部 Schema。

该 Schema 存放位图索引相关的内部结构,由系统自动维护,不应被直接访问或修改。


3.3 xlog_record_read

xlog_record_read 用于支持对 WAL(Write-Ahead Log)日志的解析与访问。

该 Schema 常用于:

  • 审计分析
  • 日志解析
  • 高级运维与诊断场景

其对象面向 DBA 或系统组件,不应被业务 SQL 使用。


四、安全与合规相关 Schema

当 KingbaseES 启用安全增强功能时,通常会出现以下 Schema。

4.1 sysaudit

sysaudit 用于数据库审计功能,存放审计日志相关的表或视图。

审计数据通常由系统自动写入,DBA 负责查询与分析,不应进行人工修改。


4.2 sysmac

sysmac 用于强制访问控制(MAC)相关的安全策略与元数据管理。

该 Schema 通常出现在涉密或高安全等级场景中,由安全模块维护。


4.3 anon

anon 用于数据脱敏与匿名化功能,存放脱敏规则、函数及配置。

业务用户通常通过查询结果感知脱敏效果,而不会直接操作该 Schema。


4.4 src_restrict

src_restrict 用于访问源控制和安全策略管理,例如基于来源或应用的访问限制。

其内容通常由系统或安全管理员通过配置接口间接维护。


五、云平台相关 Schema

5.1 rdsadmin

rdsadmin 是云数据库(RDS)环境中使用的管理 Schema,用于平台级运维和监控。

在本地部署的 KingbaseES 实例中通常不会出现。


六、系统级 Schema 完整列表

sys_catalog
information_schema
pg_toast
pg_temp_N
pg_toast_temp_N
sys
pg_bitmapindex
xlog_record_read
sysaudit
sysmac
anon
src_restrict
rdsadmin

七、工程实践建议

7.1 权限治理

  • 业务用户仅授权业务 Schema 或 public
  • 明确禁止对系统 Schema 的写权限
  • 系统 Schema 纳入权限审计范围

7.2 迁移与适配

  • PostgreSQL 迁移到 KingbaseES 时,应避免应用 SQL 依赖系统 Schema
  • 特别注意 syssysauditanon 等 KingbaseES 特有 Schema

7.3 安全与合规

  • 系统中出现安全相关 Schema,意味着数据库已进入安全增强模式
  • 需要同步完善审计、运维与权限策略

结语

系统级 Schema 是 KingbaseES 数据库体系的重要组成部分。
清晰理解其边界与职责,是实现数据库稳定运行、安全合规和长期可运维的基础。

在生产环境中,应始终将系统 Schema 与业务 Schema 明确隔离,并通过制度和技术手段加以保障。

0
博主关闭了所有页面的评论