等保测评命令——神州数据库

各位大佬,想看那种网络设备/操作系统/数据库/中间件的测评命令清单,可在留言区留言,我会以最快速度给你们总结,然后发出来!

依据 GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》第三级”安全计算环境” 条款,结合神州数据库官方安全指南及现场测评实践。

适用版本:ShenzhouDB V2.0 / V3.0 / V4.0(基于PostgreSQL 11/12/14深度定制)


一、身份鉴别(8.1.4.1)

1.1 数据库账户与口令策略

控制项测评命令达标判据
超级管理员账户szsql -U szadmin -c "SELECT * FROM pg_user WHERE usesysid=10;"szadmin账户受控
空口令检查szsql -U szadmin -c "SELECT usename FROM pg_user WHERE passwd IS NULL;"无输出
弱口令检查szsql -U szadmin -c "SELECT usename FROM pg_shadow WHERE passwd LIKE '%md5%' AND length(passwd)<35;"无输出
密码复杂度szsql -U szadmin -c "SHOW passwordcheck.enable;"on
密码有效期szsql -U szadmin -c "SELECT usename, valuntil FROM pg_shadow WHERE valuntil IS NOT NULL;"≤90天
密码历史szsql -U szadmin -c "SHOW sz_password_reuse_max;"≥5次
登录失败锁定szsql -U szadmin -c "SHOW sz_login_lock_max_failed;"≤5次
锁定时间szsql -U szadmin -c "SHOW sz_login_lock_duration;"≥30分钟

神州数据库特有配置:

# 连接数据库(需先切换到szuser用户或配置环境变量)
su - szuser
szsql -U szadmin -d szdb -W

# 查看所有用户及状态
SELECT usename, usesuper, usecreatedb, valuntil, 
       CASE WHEN passwd LIKE 'md5%' THEN 'md5'
            WHEN passwd LIKE 'SCRAM-SHA-256%' THEN 'scram-sha-256'
            ELSE '其他' END as pwd_type,
passwd IS NULL as is_empty
FROM pg_user;

# 查看密码策略详细配置(神州特有插件)
SHOW passwordcheck;
SHOW passwordcheck.min_length;        -- 最小长度≥8
SHOW passwordcheck.min_upper;         -- 大写字母≥1
SHOW passwordcheck.min_lower;         -- 小写字母≥1
SHOW passwordcheck.min_digit;         -- 数字≥1
SHOW passwordcheck.min_special;       -- 特殊字符≥1

# 查看神州数据库特有安全参数
SHOW sz_security;
SHOW sz_login_lock;                   -- 登录失败锁定开关
SHOW sz_login_lock_max_failed;        -- 最大失败次数(默认5)
SHOW sz_login_lock_duration;          -- 锁定时间(秒,默认1800)
SHOW sz_login_lock_auto_unlock;       -- 是否自动解锁

# 查看被锁定的用户(神州特有视图)
SELECT * FROM sz_login_lock_status WHERE is_locked =true;

# 查看用户密码过期信息
SELECT usename, 
       CASE WHEN valuntil < NOW() THEN '已过期'
            WHEN valuntil < NOW() + INTERVAL '7 days' THEN '即将过期'
            ELSE '正常' END as pwd_status,
       valuntil as expire_time
FROM pg_shadow 
WHERE valuntil IS NOT NULL;

1.2 远程管理与连接控制

控制项测评命令达标判据
监听地址cat ${SZDATA}/postgresql.conf | grep listen_addresses非’*’或限定IP
端口检查ss -tulnp | grep 5432默认5432,可修改
SSL连接szsql -U szadmin -c "SHOW ssl;"on
国密SSLszsql -U szadmin -c "SHOW sz_ssl_gm;"on(神州特有)
客户端证书ls -la ${SZDATA}/server.crt存在且权限600
最大连接数szsql -U szadmin -c "SHOW max_connections;"根据业务配置

神州数据库特有配置:

# 查看数据库监听配置
cat${SZDATA}/postgresql.conf |grep-E'listen_addresses|port|ssl'

# 查看SSL详细配置
SHOW ssl_cert_file;      -- 证书路径
SHOW ssl_key_file;       -- 私钥路径
SHOW ssl_ca_file;        -- CA证书
SHOW ssl_crl_file;       -- 吊销列表
SHOW ssl_ciphers;        -- 加密算法

# 查看神州数据库国密SSL配置(V3.0+支持)
SHOW sz_ssl_gm;          -- 国密SSL开关
SHOW sz_ssl_gm_cert_file;    -- 国密证书
SHOW sz_ssl_gm_key_file;     -- 国密私钥
SHOW sz_ssl_gm_ciphers;      -- 国密算法套件(SM2/SM3/SM4)

# 查看当前连接情况
SELECT client_addr, usename, state, backend_start, query_start,
       ssl, ssl_version, ssl_cipher, ssl_client_dn
FROM pg_stat_activity 
WHERE client_addr IS NOT NULL;

# 查看认证配置文件(神州数据库支持pg_hba.conf扩展)
cat${SZDATA}/pg_hba.conf
# 核查要点:
# - 拒绝trust认证方式
# - 拒绝host all all 0.0.0.0/0 md5
# - 采用hostssl强制SSL连接
# - 优先使用scram-sha-256认证

# 查看神州数据库扩展认证方式
cat${SZDATA}/sz_hba.conf 2>/dev/null  # 神州特有扩展认证配置

1.3 双因子认证(高风险项)

# 检查是否启用证书认证
cat${SZDATA}/pg_hba.conf |grep cert
cat${SZDATA}/sz_hba.conf 2>/dev/null |grep cert

# 检查是否集成外部认证(LDAP/RADIUS/AD)
SHOW ldapserver;          -- LDAP服务器
SHOW ldapport;            -- LDAP端口
SHOW ldapbasedn;          -- LDAP基础DN

# 检查RADIUS认证配置(神州特有)
SHOW sz_radius_server;
SHOW sz_radius_secret;
SHOW sz_radius_port;

# 检查国密证书认证(神州特有)
SHOW sz_gm_cert_auth;
cat${SZDATA}/sz_cert.conf 2>/dev/null  # 国密证书映射配置

# 检查审计是否记录认证事件
SHOW log_connections;
SHOW log_disconnections;
SHOW sz_audit_log_auth;   -- 神州特有认证审计开关

二、访问控制(8.1.4.2)

2.1 账户权限管理

控制项测评命令达标判据
超级用户数量szsql -U szadmin -c "SELECT usename FROM pg_user WHERE usesuper='t';"≤2个
默认账户处理szsql -U szadmin -c "SELECT usename FROM pg_user WHERE usename IN ('szadmin', 'szuser', 'postgres');"已修改默认口令
角色分离szsql -U szadmin -c "SELECT rolname FROM pg_roles;"存在安全管理员、审计管理员
权限授予szsql -U szadmin -c "\dp *.*"最小权限原则

神州数据库特有配置:

# 查看三权分立配置(神州数据库核心安全特性)
SHOW sz_sepofpowers;  -- 是否启用三权分立

# 查看安全管理员(szsso)配置
szsql -U szsso -c"SELECT current_user;"

# 查看审计管理员(szsao)配置  
szsql -U szsao -c"SELECT current_user;"

# 查看系统管理员(szadmin)权限限制
-- 启用三权分立后,szadmin不能查看审计日志,不能修改安全策略

# 查看所有角色及成员关系
SELECT r.rolname, r.rolsuper, r.rolinherit,
       ARRAY(SELECT b.rolname 
             FROM pg_catalog.pg_auth_members m 
             JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
             WHERE m.member = r.oid) as memberof
FROM pg_catalog.pg_roles r 
WHERE r.rolname !~ '^pg_';

# 查看对象权限详情
SELECT grantor, grantee, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee NOT IN ('PUBLIC', 'szadmin');

# 检查PUBLIC角色权限(应回收PUBLIC对敏感表的权限)
SELECT * FROM information_schema.table_privileges WHERE grantee='PUBLIC';

# 查看神州数据库特有安全角色
SELECT rolname FROM pg_roles WHERE rolname LIKE 'sz_%';
-- sz_security_admin: 安全管理员角色
-- sz_audit_admin: 审计管理员角色
-- sz_backup_admin: 备份管理员角色

2.2 敏感数据访问控制

# 查看行级安全策略(RLS)配置
SELECT schemaname, tablename, rowsecurity FROM pg_tables WHERE rowsecurity=true;

# 查看具体RLS策略
SELECT * FROM pg_policies;

# 查看列级加密配置(神州数据库特有透明加密)
SHOW sz_transparent_encrypt;
SHOW sz_transparent_encrypt_kms_url;    -- 密钥管理服务URL
SHOW sz_transparent_encrypt_algorithm;  -- 加密算法(SM4/AES256)

# 查看加密表空间
SELECT spcname, spcencrypt FROM pg_tablespace WHERE spcencrypt =true;

# 查看数据脱敏配置(神州数据库特有动态脱敏)
SELECT * FROM sz_redaction_policies;
SELECT * FROM sz_redaction_columns;

# 查看脱敏策略详情
SELECT policy_name, table_name, column_name, function_type, expression
FROM sz_redaction_policies sp
JOIN sz_redaction_columns sc ON sp.policy_id = sc.policy_id;

三、安全审计(8.1.4.3)

3.1 审计服务启用

控制项测评命令达标判据
审计开关szsql -U szsao -c "SHOW sz_audit.enable;"on
审计模式szsql -U szsao -c "SHOW sz_audit.mode;"all或std
审计日志路径szsql -U szsao -c "SHOW sz_audit.log_directory;"非数据目录,独立磁盘
审计日志格式szsql -U szsao -c "SHOW sz_audit.log_format;"csv或json
审计日志保留szsql -U szsao -c "SHOW sz_audit.log_rotation_age;"≥6个月

神州数据库特有配置:

# 查看神州数据库审计总开关(需用szsao登录)
SHOW sz_audit;

# 查看审计详细配置
SHOW sz_audit.log;                    -- 审计日志总开关
SHOW sz_audit.log_catalog;            -- 是否审计系统表
SHOW sz_audit.log_level;                -- 审计级别(DEBUG/INFO/WARNING/ERROR)
SHOW sz_audit.log_connections;          -- 审计连接
SHOW sz_audit.log_disconnections;       -- 审计断开
SHOW sz_audit.log_ddl;                  -- 审计DDL
SHOW sz_audit.log_dml;                  -- 审计DML
SHOW sz_audit.log_select;               -- 审计查询
SHOW sz_audit.log_parameter;            -- 审计参数
SHOW sz_audit.log_statement_once;       -- 是否单次记录

# 查看神州数据库特有审计功能
SHOW sz_audit_log_admin;                -- 审计管理员操作
SHOW sz_audit_log_security;             -- 审计安全操作
SHOW sz_audit_log_privilege;            -- 审计权限变更
SHOW sz_audit_log_object;               -- 审计对象访问

# 查看审计规则(精细化审计)
SELECT * FROM sz_audit_rules;

# 查看审计对象配置
SELECT * FROM sz_audit_objects;

# 查看审计用户配置
SELECT * FROM sz_audit_users;

# 查看审计日志文件
ls-la${SZDATA}/sz_audit/ 2>/dev/null ||ls-la /var/lib/shenzoudb/sz_audit/

# 查看审计日志内容(CSV格式)
head-5${SZDATA}/sz_audit/szaudit-*.csv 2>/dev/null

# 查看审计日志大小
du-sh${SZDATA}/sz_audit/ 2>/dev/null

# 查看审计表空间(应独立表空间)
SELECT spcname FROM pg_tablespace WHERE spcname='sz_audit';

3.2 审计记录保护

# 检查审计日志权限
ls-la${SZDATA}/sz_audit/szaudit-*.csv 2>/dev/null
# 应:640 szuser:szuser

# 检查审计日志是否定期归档
crontab-l|grep sz_audit
ls /backup/shenzoudb/audit/ 2>/dev/null

# 查看审计日志自动清理配置
SHOW sz_audit.log_truncate_on_rotation;
SHOW sz_audit.log_rotation_age;
SHOW sz_audit.log_rotation_size;

# 检查审计管理员权限(仅能查询审计日志,不能修改审计配置)
szsql -U szsao -c"SELECT * FROM sz_audit_log LIMIT 5;"
szsql -U szsao -c"ALTER SYSTEM SET sz_audit.enable = off;"# 应失败

# 查看审计日志完整性校验(神州特有)
SELECT sz_audit_verify_log('${SZDATA}/sz_audit/szaudit-20240101.csv')2>/dev/null;

四、入侵防范(8.1.4.4)

4.1 数据库加固与漏洞修复

控制项测评命令达标判据
版本补丁szsql -U szadmin -c "SELECT version();"最新稳定版本
危险函数szsql -U szadmin -c "SELECT proname FROM pg_proc WHERE proname IN ('pg_read_file', 'pg_ls_dir', 'copy_from_program');"已回收权限
扩展插件szsql -U szadmin -c "SELECT * FROM pg_extension;"仅安装可信扩展
外部表szsql -U szadmin -c "SELECT * FROM pg_foreign_data_wrapper;"受控使用

神州数据库特有配置:

# 查看数据库版本及补丁
SELECT version();
SHOW server_version;
SHOW server_version_num;

# 查看神州数据库版本信息
SELECT * FROM sz_version();
SELECT sz_db_version();

# 检查危险存储过程
SELECT proname, prosrc, prosecdef 
FROM pg_proc 
WHERE proname IN ('pg_read_file', 'pg_read_binary_file', 'pg_ls_dir', 
'pg_database_size', 'pg_relation_size', 'pg_size_pretty')
AND prosecdef =true;

# 检查COPY PROGRAM权限(高危命令)
SHOW allow_system_table_mods;  -- 应为off

# 检查外部数据封装器
SELECT fdwname, fdwowner::regrole, fdwoptions FROM pg_foreign_data_wrapper;

# 检查dblink和file_fdw(可能用于越权访问)
SELECT * FROM pg_extension WHERE extname IN ('dblink', 'file_fdw', 'postgres_fdw');

# 查看神州数据库安全扩展
SELECT * FROM pg_extension WHERE extname LIKE 'sz_%';
-- sz_passwordcheck: 密码复杂度检查
-- sz_audit: 审计功能
-- sz_encrypt: 透明加密
-- sz_redaction: 动态脱敏
-- sz_rls: 行级安全增强

# 检查自定义函数安全性
SELECT n.nspname, p.proname, p.prosecdef, p.proowner::regrole
FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
AND p.prosecdef =true;  -- 安全定义者函数需重点审查

# 检查神州数据库安全加固参数
SHOW sz_security_hardening;  -- 安全加固总开关
SHOW sz_disable_load_library;  -- 禁止动态加载库
SHOW sz_restrict_copy_program;   -- 限制COPY PROGRAM
SHOW sz_restrict_file_functions; -- 限制文件操作函数

4.2 资源限制与防护

# 查看资源限制配置
SHOW max_connections;           -- 最大连接数
SHOW superuser_reserved_connections;  -- 超级用户保留连接

# 查看用户级资源限制(神州特有)
SELECT rolname, rolconnlimit FROM pg_roles WHERE rolconnlimit >0;

# 查看神州数据库连接池配置
SHOW sz_connection_pool;
SHOW sz_pool_max_size;
SHOW sz_pool_idle_timeout;

# 查看语句超时配置
SHOW statement_timeout;         -- 语句执行超时
SHOW lock_timeout;              -- 锁等待超时
SHOW idle_in_transaction_session_timeout;  -- 事务空闲超时

# 查看并发控制
SHOW max_worker_processes;
SHOW max_parallel_workers;
SHOW max_parallel_workers_per_gather;

# 查看神州数据库特有资源限制
SHOW sz_max_query_time;         -- 最大查询时间
SHOW sz_max_rows_returned;      -- 最大返回行数限制
SHOW sz_max_temp_files;         -- 最大临时文件数
SHOW sz_max_temp_size;          -- 最大临时文件大小

五、恶意代码防范(8.1.4.5)

# 检查数据库服务器杀毒软件
systemctl status kav || systemctl status clamav-daemon

# 检查数据库文件完整性校验(神州数据库提供)
${SZHOME}/bin/sz_verify_checksum -D${SZDATA}

# 检查异常SQL模式(审计日志分析)
szsql -U szsao -c"
SELECT substr(query, 1, 50), count(*) 
FROM sz_audit_log 
WHERE query ~* '(drop|delete|truncate|grant|revoke)' 
AND event_time > current_date - interval '7 days'
GROUP BY substr(query, 1, 50)
ORDER BY count(*) DESC;
"

# 检查异常登录行为
szsql -U szsao -c"
SELECT client_addr, usename, count(*) as failed_count
FROM sz_audit_log 
WHERE event_type = 'CONNECT' AND result = 'failed'
AND event_time > current_date - interval '1 day'
GROUP BY client_addr, usename
HAVING count(*) > 5;
"

# 检查SQL注入特征
szsql -U szsao -c"
SELECT usename, query, count(*)
FROM sz_audit_log
WHERE query ~* '(\x27|\x22|\x2D\x2D|\x2F\x2A|\x3B|\x27\x20\x6F\x72\x20\x27|\x27\x20\x61\x6E\x64\x20\x27)'
AND event_time > current_date - interval '1 day'
GROUP BY usename, query;
"

六、可信验证(8.1.4.6)

控制项测评命令达标判据
国密算法支持szsql -U szadmin -c "SHOW sz_ssl_gm_ciphers;"包含SM2/SM3/SM4
透明加密szsql -U szadmin -c "SHOW sz_transparent_encrypt;"on
加密算法szsql -U szadmin -c "SHOW sz_transparent_encrypt_algorithm;"SM4或AES256
完整性保护szsql -U szadmin -c "SHOW data_checksums;"on

神州数据库特有配置:

# 查看国密支持(神州数据库V3.0+完整支持国密)
SHOW sz_ssl_gm;              -- 国密SSL开关
SHOW sz_ssl_gm_cert_file;    -- 国密证书
SHOW sz_ssl_gm_key_file;     -- 国密私钥
SHOW sz_ssl_gm_ciphers;      -- 国密算法套件

# 查看国密算法详情
SELECT * FROM sz_gm_ciphers();

# 查看透明数据加密(TDE)配置
SHOW sz_transparent_encrypt;
SHOW sz_transparent_encrypt_kms_url;      -- 密钥管理服务
SHOW sz_transparent_encrypt_algorithm;    -- SM4或AES-256-CBC
SHOW sz_transparent_encrypt_key_rotation; -- 密钥轮换周期

# 查看表空间加密状态
SELECT spcname, spcencrypt, spcencalgorithm FROM pg_tablespace WHERE spcencrypt =true;

# 查看SSL证书国密支持
openssl s_client -connect localhost:5432 -starttls postgres 2>/dev/null |grep-i"sm2\|sm3\|sm4"

# 查看数据完整性校验
SHOW data_checksums;  -- 数据页校验和
SHOW ignore_checksum_failure;  -- 应为off

# 查看配置文件完整性(神州特有)
SELECT sz_verify_file('${SZDATA}/postgresql.conf');
SELECT sz_verify_file('${SZDATA}/pg_hba.conf');

# 查看国密随机数
SELECT sz_gm_random(32);  -- 生成32字节国密随机数

七、数据备份与恢复(8.1.4.9)

控制项测评命令达标判据
物理备份ls -la /backup/shenzoudb/每日全备+增量
逻辑备份ls -la /backup/shenzoudb/dump/每周逻辑备份
归档日志szsql -U szadmin -c "SHOW archive_mode;"on
备份加密sz_dump --help | grep encrypt使用加密备份
恢复测试cat /backup/shenzoudb/restore_test.log每月恢复演练

神州数据库特有配置:

# 查看归档配置
SHOW archive_mode;
SHOW archive_command;
SHOW archive_timeout;

# 查看WAL保留策略
SHOW wal_level;           -- replica或logical
SHOW max_wal_size;
SHOW min_wal_size;

# 查看神州数据库备份工具
which sz_basebackup
which sz_dump
which sz_dumpall
which sz_rman  # 神州RMAN备份工具(V3.0+)

# 检查RMAN备份配置(如果使用)
cat${SZHOME}/sz_rman/sz_rman.conf 2>/dev/null

# 查看备份计划任务
crontab-l|grep-E'sz_dump|sz_basebackup|sz_rman'

# 检查备份文件权限
ls-la /backup/shenzoudb/
stat-c'%a %U:%G' /backup/shenzoudb/

# 验证备份有效性(检查最近备份文件大小和时间)
find /backup/shenzoudb/ -name"*.backup"-mtime-1-ls
find /backup/shenzoudb/ -name"*.sql"-mtime-7-ls
find /backup/shenzoudb/ -name"*.dmp"-mtime-7-ls

# 检查异地备份
ls /remote_backup/shenzoudb/ 2>/dev/null ||echo"需核查异地备份策略"

# 神州数据库特有备份验证
sz_verify_backup /backup/shenzoudb/latest.backup 2>/dev/null

八、神州数据库特有安全功能

8.1 安全版特性(V3.0+)

# 查看安全版功能开关
SHOW sz_security_edition;      -- 是否安全版
SHOW sz_mac;                   -- 强制访问控制(MAC)
SHOW sz_label_security;          -- 标签安全
SHOW sz_database_firewall;       -- 数据库防火墙
SHOW sz_intrusion_detection;     -- 入侵检测

# 查看强制访问控制策略(MAC)
SELECT * FROM sz_mac_policy;
SELECT * FROM sz_mac_label;

# 查看标签安全配置
SELECT label_name, label_value FROM sz_security_labels;

# 查看数据库防火墙规则
SELECT * FROM sz_db_firewall_rules;
SELECT * FROM sz_db_firewall_whitelist;
SELECT * FROM sz_db_firewall_blacklist;

# 查看SQL注入防护规则
SELECT * FROM sz_sql_injection_rules;

# 查看敏感数据发现
SELECT * FROM sz_sensitive_data_discovery;

8.2 性能与监控

# 查看数据库性能统计
SELECT * FROM pg_stat_database;

# 查看神州数据库性能视图
SELECT * FROM sz_stat_performance;
SELECT * FROM sz_stat_security_events;

# 查看慢查询日志
SHOW log_min_duration_statement;  -- 记录超过该值的SQL
SHOW sz_slow_query_log;           -- 神州慢查询开关

# 查看锁等待情况
SELECT * FROM pg_locks WHERE NOT granted;

# 查看死锁检测
SHOW deadlock_timeout;
SHOW log_deadlocks;

# 查看神州数据库安全事件
SELECT * FROM sz_security_events WHERE event_time > current_date - interval '1 day';

九、一键巡检脚本(神州数据库)

#!/bin/bash
# 神州数据库(ShenzhouDB)等保三级一键巡检脚本
# 适用:ShenzhouDB V2.0/V3.0/V4.0

exportSZHOME=/opt/ShenzhouDB/4.0
exportSZDATA=/var/lib/shenzoudb/data
exportPATH=$SZHOME/bin:$PATH

echo"===== 神州数据库等保三级巡检 ====="
echo"巡检时间:$(date)"
echo"数据库版本:$(szsql -U szadmin -c 'SELECT version();' 2>/dev/null | head -1)"
echo""

echo"===== 1 身份鉴别 ====="
echo"--- 超级用户检查 ---"
szsql -U szadmin -c"SELECT usename, usesuper FROM pg_user WHERE usesuper='t';"2>/dev/null

echo"--- 密码策略 ---"
szsql -U szadmin -c"SHOW passwordcheck.enable;"2>/dev/null
szsql -U szadmin -c"SHOW passwordcheck.min_length;"2>/dev/null

echo"--- 登录失败锁定 ---"
szsql -U szadmin -c"SHOW sz_login_lock;"2>/dev/null
szsql -U szadmin -c"SHOW sz_login_lock_max_failed;"2>/dev/null

echo"--- 国密SSL配置 ---"
szsql -U szadmin -c"SHOW sz_ssl_gm;"2>/dev/null
szsql -U szadmin -c"SHOW sz_ssl_gm_ciphers;"2>/dev/null |head-3

echo"--- 监听地址 ---"
cat${SZDATA}/postgresql.conf 2>/dev/null |grep listen_addresses |head-1
echo""

echo"===== 2 访问控制 ====="
echo"--- 三权分立 ---"
szsql -U szadmin -c"SHOW sz_sepofpowers;"2>/dev/null

echo"--- 角色列表 ---"
szsql -U szadmin -c"SELECT rolname FROM pg_roles WHERE rolname !~ '^pg_';"2>/dev/null

echo"--- 敏感权限检查 ---"
szsql -U szadmin -c"SELECT grantee, privilege_type FROM information_schema.table_privileges WHERE grantee='PUBLIC' LIMIT 5;"2>/dev/null

echo"--- 行级安全策略 ---"
szsql -U szadmin -c"SELECT tablename, rowsecurity FROM pg_tables WHERE rowsecurity=true;"2>/dev/null
echo""

echo"===== 3 安全审计 ====="
echo"--- 审计开关 ---"
szsql -U szsao -c"SHOW sz_audit.enable;"2>/dev/null
szsql -U szsao -c"SHOW sz_audit.log;"2>/dev/null

echo"--- 审计日志路径 ---"
szsql -U szsao -c"SHOW sz_audit.log_directory;"2>/dev/null
ls-ld$(szsql -U szsao -c"SHOW sz_audit.log_directory;"2>/dev/null |awk'{print $1}')2>/dev/null

echo"--- 审计日志文件 ---"
ls-la${SZDATA}/sz_audit/ 2>/dev/null |head-5||echo"审计日志目录未找到"
echo""

echo"===== 4 入侵防范 ====="
echo"--- 版本信息 ---"
szsql -U szadmin -c"SELECT version();"2>/dev/null |head-1

echo"--- 危险扩展 ---"
szsql -U szadmin -c"SELECT extname FROM pg_extension WHERE extname IN ('dblink', 'file_fdw', 'postgres_fdw');"2>/dev/null

echo"--- 安全加固参数 ---"
szsql -U szadmin -c"SHOW sz_security_hardening;"2>/dev/null
szsql -U szadmin -c"SHOW sz_restrict_copy_program;"2>/dev/null

echo"--- 资源限制 ---"
szsql -U szadmin -c"SHOW max_connections;"2>/dev/null
szsql -U szadmin -c"SHOW statement_timeout;"2>/dev/null
echo""

echo"===== 5 可信验证 ====="
echo"--- 透明加密 ---"
szsql -U szadmin -c"SHOW sz_transparent_encrypt;"2>/dev/null
szsql -U szadmin -c"SHOW sz_transparent_encrypt_algorithm;"2>/dev/null

echo"--- 数据校验 ---"
szsql -U szadmin -c"SHOW data_checksums;"2>/dev/null

echo"--- 国密支持 ---"
szsql -U szadmin -c"SELECT * FROM sz_gm_ciphers();"2>/dev/null |head-5
echo""

echo"===== 6 备份恢复 ====="
echo"--- 归档模式 ---"
szsql -U szadmin -c"SHOW archive_mode;"2>/dev/null
szsql -U szadmin -c"SHOW archive_command;"2>/dev/null

echo"--- 备份文件检查 ---"
ls /backup/shenzoudb/ 2>/dev/null |head-5||echo"备份目录未找到,请核查备份策略"

echo"--- 备份计划任务 ---"
crontab-l2>/dev/null |grep-E'shenzoudb|sz_dump|sz_basebackup'||echo"未找到数据库备份任务"
echo""

echo"===== 7 国密合规(V3.0+) ====="
echo"--- 国密SSL状态 ---"
szsql -U szadmin -c"SHOW sz_ssl_gm;"2>/dev/null

echo"--- 国密算法套件 ---"
szsql -U szadmin -c"SHOW sz_ssl_gm_ciphers;"2>/dev/null

echo"--- 国密证书检查 ---"
ls-la${SZDATA}/*gm* 2>/dev/null |head-3||echo"未找到国密证书文件"
echo""

echo"===== 8 安全版功能(V3.0+) ====="
echo"--- 安全版标识 ---"
szsql -U szadmin -c"SHOW sz_security_edition;"2>/dev/null

echo"--- 强制访问控制 ---"
szsql -U szadmin -c"SELECT count(*) FROM sz_mac_policy;"2>/dev/null

echo"--- 数据库防火墙 ---"
szsql -U szadmin -c"SELECT count(*) FROM sz_db_firewall_rules;"2>/dev/null
echo""

echo"===== 巡检完成 ====="
echo"详细结果请查看上方输出,重点关注以下高风险项:"
echo"1. 默认口令未修改(szadmin/szuser)"
echo"2. 未启用国密SSL(sz_ssl_gm=off)"
echo"3. 未启用三权分立(sz_sepofpowers=off)"
echo"4. 审计未启用(sz_audit.enable=off)"
echo"5. 监听地址为*(listen_addresses='*')"
echo"6. 未启用透明加密(sz_transparent_encrypt=off)"
echo"7. 备份未配置或归档未启用"

十、高风险项重点核查清单

检查项验证命令不合规判定整改建议
默认口令未修改szsql -U szadmin -c "SELECT usename FROM pg_shadow WHERE passwd IS NULL;"存在空口令立即修改强口令
未启用国密SSLszsql -U szadmin -c "SHOW sz_ssl_gm;"off配置国密证书,启用sz_ssl_gm
未启用三权分立szsql -U szadmin -c "SHOW sz_sepofpowers;"off启用szsso/szsao/szadmin三权分立
监听地址为*cat ${SZDATA}/postgresql.conf | grep listen_addresses'*'修改为具体IP或localhost
未启用审计szsql -U szsao -c "SHOW sz_audit.enable;"off修改配置启用审计
审计日志权限过大ls -la ${SZDATA}/sz_audit/非640修改为640 szuser:szuser
未启用归档szsql -U szadmin -c "SHOW archive_mode;"off启用WAL归档
未启用透明加密szsql -U szadmin -c "SHOW sz_transparent_encrypt;"off启用TDE保护敏感数据
存在危险扩展szsql -U szadmin -c "SELECT extname FROM pg_extension WHERE extname='dblink';"存在dblink/file_fdw评估后卸载或限制使用
未启用安全加固szsql -U szadmin -c "SHOW sz_security_hardening;"off启用安全加固参数

十一、神州数据库与PostgreSQL/其他国产库对比

对比项PostgreSQL神州数据库人大金仓达梦
等保支持需第三方工具原生三权分立原生三权分立原生三权分立
国密算法需国密SDK完整SM2/SM3/SM4完整SM2/SM3/SM4完整SM2/SM3/SM4
三权分立不支持支持szadmin/szsso/szsao支持支持
透明加密需第三方原生TDE(SM4/AES)原生TDE原生TDE
动态脱敏需扩展原生支持原生支持原生支持
强制访问控制不支持支持(安全版)支持支持
数据库防火墙不支持支持(安全版)支持支持
等保合规难度
硬件密码机不支持支持三未/江南天安支持支持

十二、等保测评执行要点

1. 账户权限要求

  • 需要szadmin(数据库管理员)、szsso(安全管理员)、szsao(审计管理员)三个账户分别验证
  • 启用三权分立后,各管理员权限严格分离:
    • szadmin:数据库管理,不能查看审计日志
    • szsso:安全策略管理,不能创建用户
    • szsao:审计管理,只能查询不能修改配置

2. 国密合规检查重点

# 检查是否使用国密SSL
openssl s_client -connect localhost:5432 -starttls postgres 2>/dev/null |grep-i"sm2\|SM2"

# 检查国密证书有效性
szsql -U szadmin -c"SELECT sz_gm_cert_info();"2>/dev/null

# 检查密码机接入(如使用硬件密码机)
szsql -U szadmin -c"SHOW sz_kms_type;"2>/dev/null  # 应显示hsm或software
cat${SZDATA}/sz_hsm.conf 2>/dev/null  # 密码机配置文件

3. 现场访谈要点

  • 是否定期更换管理员口令(≤90天)
  • 是否启用三权分立,各管理员是否由不同人员担任
  • 是否使用国密算法进行数据传输加密
  • 是否定期备份配置文件和审计日志
  • 是否进行恢复演练(每半年至少一次)
  • 是否使用硬件密码机保护主密钥

4. 版本差异

功能项V2.0V3.0V4.0
三权分立基础完整增强
国密算法SM4SM2/SM3/SM4完整国密SSL
透明加密AESSM4/AESSM4/AES
强制访问控制不支持支持(安全版)增强
数据库防火墙不支持支持(安全版)增强
动态脱敏基础增强完整

参考标准:GB/T 22239-2019、GB/T 28448-2019、GM/T 0054-2018(国密数据库标准)、神州数据库安全加固指南

适用版本:ShenzhouDB V2.0 / V3.0 / V4.0

验证环境:x86_64 / ARM64 / 国产化芯片(飞腾/鲲鹏/龙芯/海光/兆芯/申威)

声明:来自汪汪虚拟空间,仅代表创作者观点。链接:https://eyangzhen.com/6898.html

汪汪虚拟空间的头像汪汪虚拟空间

相关推荐

添加微信
添加微信
Ai学习群
返回顶部