SQL安全审计方案_权限控制与操作审计

1次阅读

数据库权限控制须严格遵循最小必要原则,禁用高危角色与all授权,限制敏感操作、强化连接安全、全量审计关键行为并确保日志防篡改,同时联动防火墙实现高危操作实时拦截与异常行为自动响应。

SQL安全审计方案_权限控制与操作审计

权限控制:最小化授权原则落地

数据库权限必须严格遵循“最小必要”原则,只授予用户完成工作所必需的权限。避免使用dbasysadmin等高危角色直接分配给业务账号。重点控制以下几类权限:

  • 对象级权限:按表、视图、存储过程单独授权,禁用GRANT ALL ON *;敏感表(如user_infopayment_log)仅开放select,写操作需经审批流程
  • 语句级限制:禁用DROPTRUNCATEALTER database等高风险DDL命令;对开发账号默认关闭CREATE PROCEDUREEXECUTE
  • 连接与会话控制:限制IP白名单、设置登录失败锁定策略(如5次失败锁30分钟)、强制启用ssl连接,防止凭证明文传输

操作审计:关键行为全量捕获

审计不是事后翻日志,而是实时感知高危动作。需覆盖三类核心操作:

  • 数据变更类:INSERT/UPDATE/delete影响行数≥1000、WHERE条件为空(全表更新)、修改含“password”“Token”“salt”字段的操作,立即触发告警
  • 结构变更类:所有DDL语句(尤其是ALTER table … DROP columnDROP INDEX)必须记录执行人、时间、原始sql、影响对象及执行前后的表结构快照
  • 权限变更类:GRANT/REVOKE操作需关联审批单号,审计日志中强制留痕“谁在何时为何目的授权给谁”,禁止匿名或脚本自动授权

审计日志管理:防篡改+可追溯

日志本身是审计依据,必须确保其完整性与可用性:

  • 日志独立存储:不与业务库共用磁盘或实例,建议写入专用只读审计库或推送至SIEM系统(如Splunk、elk
  • 保留周期合规:操作类日志至少保存180天,涉及个人信息或支付的场景须满足GDPR/等保2.0要求(通常≥1年)
  • 访问隔离:审计日志表仅开放SELECT给安全团队,禁止DBA直接删改;启用数据库原生日志签名(如oracle Unified Audit Trail、mysql 8.0+ audit log checksum)

自动化响应:从审计到阻断

高级审计需联动防护能力,不能只停留在“看见”:

  • 高危操作实时拦截:例如检测到DELETE FROM users WHERE 1=1,由数据库防火墙(如GreenSQL、Imperva)自动终止会话并通知负责人
  • 异常行为建模:基于历史操作建立用户行为基线(如某运维账号通常9:00–18:00操作,且95%为SELECT),当出现凌晨2点执行UPDATE时自动提升风险等级
  • 审计结果闭环:每月生成《权限复核报告》,自动标记超期未用权限、越权访问频次TOP5账号,并推动ITSM工单整改
text=ZqhQzanResources