KES数据库安全、权限、审计实战

这一章专门讲生产上线必过的安全关——等保2.0、三权分立、数据脱敏、操作审计、国密加密、权限最小化。内容全部来自政务/金融/央企真实上线场景,完全贴合KES官方安全规范,学完就能直接过等保、过检查、上线不踩坑。
一、📘 本章学习导读
1.1 学习目标
1.2 本章重点
- 三权分立安全体系
- 用户角色权限实战配置
- 登录安全与传输加密
- 全量操作审计与日志管理
- 敏感数据脱敏与访问控制
- 等保2.0数据库安全标准配置
二、💡 为什么数据库安全是重中之重
只要你做政务、金融、能源、医疗,安全就不是可选项,是准入门槛。
等保不过→不能上线;
权限混乱→出事故背责;
数据泄露→直接违法;
审计不全→检查必挂。
KES从设计之初就走高安全、国密、等保、涉密路线,是国产数据库里安全能力最完整的产品之一。这一章我带你把安全配置一次性做全、做对、做规范。
三、🛡️ KES三权分立安全架构
这是KES最核心的安全机制,也是等保必查项。
3.1 三权分立是什么
把数据库超级权限拆成三个互相独立、互相制约的角色:
谁也不能独揽大权,从机制上防止越权、误操作、恶意操作。
3.2 三权分立开启方式
— 开启三权分立(安装时可直接开启)
ALTER SYSTEM SET enable_separation = on;
开启后,sys用户权限被限制,必须用三个角色分工操作。
四、👤 用户、角色、权限实战配置
权限管理的核心只有一句话:最小够用原则。
4.1 创建业务用户(禁止用sys跑业务)
CREATE USER business_user
IDENTIFIED BY "Kingbase@2026#"
CONNECTION LIMIT 50;
4.2 创建角色(统一权限,方便管理)
— 查询角色
CREATE ROLE r_query;
GRANT SELECT ON t_user TO r_query;
— 读写角色
CREATE ROLE r_rw;
GRANT SELECT,INSERT,UPDATE,DELETE ON t_order TO r_rw;
4.3 给用户分配角色
GRANT r_query TO business_user;
4.4 精细化权限控制
— 只给某张表的查询
GRANT SELECT ON t_gov_user TO app_user;
— 禁止删除任何表
REVOKE DROP ON ALL TABLES IN SCHEMA public FROM app_user;
— 只允许访问指定字段
GRANT SELECT(uid,username) ON t_user TO app_user;
4.5 企业权限规范(直接照抄用)
- 开发人员:只能查询,不能改、不能删
- 应用账号:只给业务表读写,不给系统表
- 运维:只能启停、监控,不能看业务数据
- 审计:只能看日志,不能碰数据
五、🔐 登录安全与访问控制
这是防暴力破解、防非法登录的第一道墙。
5.1 密码策略(等保必开)
— 密码长度≥12
ALTER SYSTEM SET password_min_length = 12;
— 密码复杂度:字母+数字+符号
ALTER SYSTEM SET password_min_uppercase = 1;
ALTER SYSTEM SET password_min_lowercase = 1;
ALTER SYSTEM SET password_min_special = 1;
— 密码过期90天
ALTER SYSTEM SET password_life_time = 90;
5.2 IP白名单(只允许指定机器连接)
修改 pg_hba.conf:
# 只允许192.168.1.0/24网段登录
host all all 192.168.1.0/24 scram-sha-256
# 禁止其他所有IP
host all all 0.0.0.0/0 reject
5.3 SSL传输加密
— 开启SSL
ALTER SYSTEM SET ssl = on;
客户端必须用SSL连接,防止数据在网络上被抓包。
六、📝 操作审计实战:谁操作、什么时候、改了什么
审计是等保2.0核心必过项,必须记录所有增删改查、登录、授权、删表操作。
6.1 开启审计
— 开启审计插件
shared_preload_libraries = 'audit'
— 记录所有登录
ALTER SYSTEM SET audit_login = on;
— 记录所有DDL(建表、改表、删表)
ALTER SYSTEM SET audit_ddl = on;
— 记录所有DML(增删改)
ALTER SYSTEM SET audit_dml = on;
6.2 审计日志查看
— 查看审计日志
SELECT * FROM sys_audit_log ORDER BY audit_time DESC;
日志里会记录:
- 登录账号、IP、时间
- 执行的SQL
- 操作类型(登录/查询/修改/删除)
- 执行结果(成功/失败)
6.3 企业审计规范
- 所有登录必审计
- 所有授权、撤销权限必审计
- 所有删表、删库、truncate必审计
- 所有敏感数据查询必审计
- 日志至少留存6个月
七、🔒 敏感数据脱敏与访问控制
身份证、手机号、银行卡、住址,绝对不能明文暴露。
7.1 动态脱敏(KES自带)
— 手机号脱敏
CREATE MASKING POLICY mask_phone
ON t_user
FOR (phone)
USING (CONCAT(SUBSTR(phone,1,3),'****',SUBSTR(phone,8)));
— 应用到用户
ALTER MASKING POLICY mask_phone ENABLE;
7.2 行级权限控制(只能看自己的数据)
— 用户只能查看自己的订单
CREATE ROW LEVEL SECURITY POLICY user_order_policy
ON t_order
FOR SELECT
USING (user_id = current_user_id);
7.3 列级权限控制
— 禁止查看身份证
REVOKE SELECT(id_card) ON t_user FROM app_user;
八、📊 国密加密与存储安全
等保三级、涉密系统必用国密算法。
8.1 开启国密SSL
— 使用国密SSL通信
ALTER SYSTEM SET ssl_ciphers = 'GMSSL';
8.2 数据存储加密
— 表空间加密
CREATE TABLESPACE sec_ts
ENCRYPTION
USING 'sm4';
8.3 敏感字段加密存储
— 存储加密函数(SM4)
INSERT INTO t_user(id_card)
VALUES(encrypt('110101199001011234','key','sm4'));
九、⚠️ 等保2.0数据库安全检查清单
我给你整理了等保现场检查必过10条,直接对照检查:
十、📝 真实企业案例:政务系统安全加固实战
某省政务服务平台上线前等保检查,我用这套方案一次性通过。
10.1 问题清单
- 用sys账号跑业务
- 无IP限制
- 无密码策略
- 无审计
- 身份证、手机号明文展示
- 权限过大
10.2 加固方案
10.3 结果
✅ 等保2.0三级顺利通过
✅ 敏感数据不泄露
✅ 权限可控、操作可追溯
✅ 符合政务涉密要求
✅ 稳定运行无安全事件
十一、🚫 安全最容易踩的坑
十二、✅ 本章总结与下一步学习计划
这一章学完,你已经具备企业级数据库安全工程师能力,等保、涉密、安全检查都能独立搞定。
你已经掌握:
- 三权分立安全架构
- 用户角色权限精细化配置
- 登录安全、IP白名单、SSL加密
- 全量操作审计与日志管理
- 敏感数据脱敏、行/列级权限
- 等保2.0标准加固方案
这是从会用数据库到能上线、能合规、能担责的关键一步。



