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

这一章专门讲生产上线必过的安全关------等保2.0、三权分立、数据脱敏、操作审计、国密加密、权限最小化。内容全部来自政务/金融/央企真实上线场景,完全贴合KES官方安全规范,学完就能直接过等保、过检查、上线不踩坑。
一、📘 本章学习导读
1.1 学习目标
- 掌握KES三权分立安全架构,理解DBA、安全员、审计员分离机制
- 学会用户、角色、权限精细化管理,做到最小权限原则
- 掌握登录控制、密码策略、IP白名单、SSL传输加密
- 熟练配置操作审计、日志留存、异常行为检测
- 学会敏感数据脱敏、行级权限、列级权限控制
- 能独立完成等保2.0要求的数据库安全配置与检查
1.2 本章重点
- 三权分立安全体系
- 用户角色权限实战配置
- 登录安全与传输加密
- 全量操作审计与日志管理
- 敏感数据脱敏与访问控制
- 等保2.0数据库安全标准配置
二、💡 为什么数据库安全是重中之重
只要你做政务、金融、能源、医疗,安全就不是可选项,是准入门槛 。
等保不过→不能上线;
权限混乱→出事故背责;
数据泄露→直接违法;
审计不全→检查必挂。
KES从设计之初就走高安全、国密、等保、涉密路线,是国产数据库里安全能力最完整的产品之一。这一章我带你把安全配置一次性做全、做对、做规范。
三、🛡️ KES三权分立安全架构
这是KES最核心的安全机制,也是等保必查项。
3.1 三权分立是什么
把数据库超级权限拆成三个互相独立、互相制约的角色:
- 系统管理员(SYSTEM):负责安装、启动、参数配置、日常运维
- 安全管理员(SECURITY):负责建用户、分配权限、配置安全策略
- 审计管理员(AUDIT):负责开启审计、查看日志、不能操作业务数据
谁也不能独揽大权,从机制上防止越权、误操作、恶意操作。
3.2 三权分立开启方式
sql
-- 开启三权分立(安装时可直接开启)
ALTER SYSTEM SET enable_separation = on;
开启后,sys用户权限被限制,必须用三个角色分工操作。
四、👤 用户、角色、权限实战配置
权限管理的核心只有一句话:最小够用原则。
4.1 创建业务用户(禁止用sys跑业务)
sql
CREATE USER business_user
IDENTIFIED BY "Kingbase@2026#"
CONNECTION LIMIT 50;
4.2 创建角色(统一权限,方便管理)
sql
-- 查询角色
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 给用户分配角色
sql
GRANT r_query TO business_user;
4.4 精细化权限控制
sql
-- 只给某张表的查询
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 密码策略(等保必开)
sql
-- 密码长度≥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:
ini
# 只允许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传输加密
sql
-- 开启SSL
ALTER SYSTEM SET ssl = on;
客户端必须用SSL连接,防止数据在网络上被抓包。
六、📝 操作审计实战:谁操作、什么时候、改了什么
审计是等保2.0核心必过项,必须记录所有增删改查、登录、授权、删表操作。
6.1 开启审计
sql
-- 开启审计插件
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 审计日志查看
sql
-- 查看审计日志
SELECT * FROM sys_audit_log ORDER BY audit_time DESC;
日志里会记录:
- 登录账号、IP、时间
- 执行的SQL
- 操作类型(登录/查询/修改/删除)
- 执行结果(成功/失败)
6.3 企业审计规范
- 所有登录必审计
- 所有授权、撤销权限必审计
- 所有删表、删库、truncate必审计
- 所有敏感数据查询必审计
- 日志至少留存6个月
七、🔒 敏感数据脱敏与访问控制
身份证、手机号、银行卡、住址,绝对不能明文暴露。
7.1 动态脱敏(KES自带)
sql
-- 手机号脱敏
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 行级权限控制(只能看自己的数据)
sql
-- 用户只能查看自己的订单
CREATE ROW LEVEL SECURITY POLICY user_order_policy
ON t_order
FOR SELECT
USING (user_id = current_user_id);
7.3 列级权限控制
sql
-- 禁止查看身份证
REVOKE SELECT(id_card) ON t_user FROM app_user;
八、📊 国密加密与存储安全
等保三级、涉密系统必用国密算法。
8.1 开启国密SSL
sql
-- 使用国密SSL通信
ALTER SYSTEM SET ssl_ciphers = 'GMSSL';
8.2 数据存储加密
sql
-- 表空间加密
CREATE TABLESPACE sec_ts
ENCRYPTION
USING 'sm4';
8.3 敏感字段加密存储
sql
-- 存储加密函数(SM4)
INSERT INTO t_user(id_card)
VALUES(encrypt('110101199001011234','key','sm4'));
九、⚠️ 等保2.0数据库安全检查清单
我给你整理了等保现场检查必过10条,直接对照检查:
- 三权分立已开启
- 密码复杂度、有效期已配置
- IP白名单已限制
- 登录失败锁定已开启
- 全量操作审计已开启
- 敏感数据已脱敏
- 权限按最小分配
- 传输使用SSL加密
- 日志定期备份、留存≥6个月
- 无弱口令、无共享账号、无闲置账号
十、📝 真实企业案例:政务系统安全加固实战
某省政务服务平台上线前等保检查,我用这套方案一次性通过。
10.1 问题清单
- 用sys账号跑业务
- 无IP限制
- 无密码策略
- 无审计
- 身份证、手机号明文展示
- 权限过大
10.2 加固方案
- 开启三权分立
- 重建业务用户,回收sys权限
- 配置密码策略、登录锁定、IP白名单
- 开启全量审计
- 配置身份证、手机号动态脱敏
- 行级权限控制,用户只能看自己数据
- 开启SSL国密加密
10.3 结果
✅ 等保2.0三级顺利通过
✅ 敏感数据不泄露
✅ 权限可控、操作可追溯
✅ 符合政务涉密要求
✅ 稳定运行无安全事件
十一、🚫 安全最容易踩的坑
- sys账号跑业务 → 必挂等保,风险极高
- 密码简单、长期不改 → 暴力破解重灾区
- 不限制IP → 任何人都能连
- 审计不开 → 出问题查不到源头
- 权限给太满 → 一人失控全库危险
- 敏感数据不脱敏 → 泄露直接违法
十二、✅ 本章总结与下一步学习计划
这一章学完,你已经具备企业级数据库安全工程师能力,等保、涉密、安全检查都能独立搞定。
你已经掌握:
- 三权分立安全架构
- 用户角色权限精细化配置
- 登录安全、IP白名单、SSL加密
- 全量操作审计与日志管理
- 敏感数据脱敏、行/列级权限
- 等保2.0标准加固方案
这是从会用数据库 到能上线、能合规、能担责的关键一步。