引言
在 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_Npg_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
- 特别注意
sys、sysaudit、anon等 KingbaseES 特有 Schema
7.3 安全与合规
- 系统中出现安全相关 Schema,意味着数据库已进入安全增强模式
- 需要同步完善审计、运维与权限策略
结语
系统级 Schema 是 KingbaseES 数据库体系的重要组成部分。
清晰理解其边界与职责,是实现数据库稳定运行、安全合规和长期可运维的基础。
在生产环境中,应始终将系统 Schema 与业务 Schema 明确隔离,并通过制度和技术手段加以保障。