数据库审计简介

最近更新时间:2025-12-04 11:00:22

我的收藏

审计概述

数据库审计是腾讯云自主研发的一款专业、高效、全面、实时监控数据库安全的审计产品,数据库审计能够实时记录腾讯云数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,针对数据库 SQL 注入、异常操作等数据库风险行为进行记录,为您的云数据库提供完善的安全诊断和管理功能,提高数据资产安全。数据库审计可以帮助您应对以下风险:
审计风险:审计日志不完整导致安全事件难以追查定位。 达不到国家等级保护(三级)明确要求。 满足不了行业信息安全合规性文件要求。
管理风险:技术人员存在的误操作、违规操作、越权操作,损害业务系统安全运行。 第三方开发维护人员的误操作,恶意操作和篡改。 超级管理员权限过大,无法审计和监控。
技术痛点:数据库系统 SQL 注入,恶意拉取库表信息。 突发大量数据库请求但不是慢日志导致无法快速定位。

审计优势

全面审计 全面记录对数据库的访问及 SQL 语句执行情况,最大程度满足用户审计需求,保障数据库安全。
高效审计 与旁路审计方式不同,腾讯云数据库通过数据库内核插件进行记录,记录更准确。
长期保存 支持用户按业务需要长期存储日志,满足合规监管要求。
架构特点 采用多点部署架构,确保服务可用性。日志流式记录,防止篡改。多副本存储,保障数据可靠性。

审计方式

全审计:即全量审计, 全量审计数据库的访问语句及执行情况。
规则审计:支持对 MongoDB 数据库的 SQL 类型数据库名集合名客户端 IP用户名等属性设置审计规则,根据审计规则审计数据库的部分执行语句。

规则审计运算逻辑

规则内部逻辑
同一规则内的多个条件采用与(AND) 关系。
所有条件必须同时满足,该规则才会触发审计。
规则间逻辑
不同规则之间采用或(OR) 关系。
只要满足任意一个规则的条件,就会触发审计。
如 A 规则指定只审计 user1 的执行时间 >= 1秒的操作,B 规则审计 user1 并且执行时间 < 1秒的语句,那么最终对 user1 所有语句进行审计。

审计目标库判定规则

表对象操作语句
判定原则:以 SQL 语句中显式指定的数据库作为审计目标。
适用操作类型:find, insert, update, delete, createCollection, dropCollection, createIndex 等。
MongoDB 表对象操作语句
说明
find(), aggregate()
查询文档操作
createCollection()
创建集合
createIndex()
创建索引
collMod, 集合结构变更操作
修改集合属性或结构
update(), updateOne(), updateMany()
更新文档
insert(), insertOne(), insertMany()
插入文档
aggregate() + $out 或批量操作
插入查询结果
delete(), deleteOne(), deleteMany()
删除文档
deleteMany({}) 或 drop() + createCollection()
清空集合
dropCollection()
删除集合
如下示例,审计目标为:db1.users 和 db2.products。配置审计 db1 → 触发审计;db2 → 触发审计;配置审计 db3 → 不触发审计(操作中未涉及)。
db1.users.find({age: {$gt: 25}})
db2.products.update({_id: 123}, {$set: {price: 99}})
非标对象操作语句
适用操作类型:show databases, show collections, db.stats() 等管理性命令。
判定原则:以当前使用的数据库作为审计目标
如下示例:审计目标:db1。

use db1
show collections
db.stats()

版本说明

当前云数据库 MongoDB 4.0及以上版本支持对实例进行审计。

计费说明

数据库审计按照审计日志存储量进行按量计费。每小时为一个计费周期,不足一小时的按一小时计费。
地域
价格(元/GB/小时)
中国(含金融地域)
0.01
其他国家和地区
0.015

审计须知

云数据库(按量)开通审计后,当用户释放该云数据库时,该云数据库对应的审计服务也随之停止,日志自动删除,且不可找回。
云数据库(包月)开通审计后,当用户释放该云数据库或云数据库到期释放时,该云数据库对应的审计服务也随之停止,日志自动删除,且不可找回。