news 2026/8/21 22:12:17

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
等保测评命令——神州数据库

依据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

国密SSL

szsql -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.0

V3.0

V4.0

三权分立

基础

完整

增强

国密算法

SM4

SM2/SM3/SM4

完整国密SSL

透明加密

AES

SM4/AES

SM4/AES

强制访问控制

不支持

支持(安全版)

增强

数据库防火墙

不支持

支持(安全版)

增强

动态脱敏

基础

增强

完整


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

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 22:10:42

智能体编排技术实现规模化可控学生画像生成

1. 项目缘起&#xff1a;当我们需要“批量制造”学生画像时在任何一个与教育、学习或用户研究相关的领域&#xff0c;我们都会遇到一个核心需求&#xff1a;理解我们的用户——学生。无论是设计一款自适应学习软件、规划一个在线课程平台&#xff0c;还是研究特定群体的学习行为…

作者头像 李华
网站建设 2026/8/21 22:09:52

SolidWorks钣金推车设计实战:从零件建模到装配体的工程思维

上周有个刚接触 SolidWorks 的朋友问我&#xff0c;说照着教程画了几个简单零件&#xff0c;感觉都会了&#xff0c;但一接到“做个能用的东西”这种任务&#xff0c;就完全不知道从哪里下手。零件是画出来了&#xff0c;可怎么把它们合理地“拼”在一起&#xff0c;怎么处理像…

作者头像 李华
网站建设 2026/8/21 22:05:13

基于技术趋势推演未来显示与智能家居生态:以2026TCL新品前瞻为例

这次我们来看一个名为“2026TCL旗舰新品发布会 速览”的项目。从标题来看&#xff0c;这并非一个传统的软件或AI模型项目&#xff0c;而更像是一份关于未来科技产品发布会的技术前瞻、信息汇总或模拟分析报告。对于关注消费电子、显示技术、智能家居和AIoT趋势的开发者与技术爱…

作者头像 李华
网站建设 2026/8/21 22:03:31

Montserrat免费商用开源字体:9字重4格式,从安装到进阶一次讲透

Montserrat免费商用开源字体&#xff1a;9字重4格式&#xff0c;从安装到进阶一次讲透 【免费下载链接】Montserrat 项目地址: https://gitcode.com/gh_mirrors/mo/Montserrat Montserrat 是一款 SIL OFL 1.1 协议的开源几何无衬线字体。做品牌设计或前端页面时想免费、…

作者头像 李华
网站建设 2026/8/21 21:59:27

免费开源PPT工具PPTist:从本地部署到AI生成的完整上手指南

免费开源PPT工具PPTist&#xff1a;从本地部署到AI生成的完整上手指南 【免费下载链接】PPTist PowerPoint-ist&#xff08;/pauəpɔintist/&#xff09;, An online presentation application that replicates most of the commonly used features of MS PowerPoint, allowin…

作者头像 李华