知识卡片
用户级审计与系统级审计的覆盖范围差异
内容
数据库审计不是靠事前预防(权限管理、加密)杜绝问题,而是承认”再完善的 防御也会被突破”这个前提,转而记录所有操作、事后可追溯——审计日志本身 会被数据库管理系统自动保护,任何人(包括审计人员)都只能查询和转储, 无权修改或删除,否则审计记录本身就可能被作恶者篡改抹去,失去追溯价值。 审计方式按”谁来设定审计范围”分两层,覆盖对象不同:用户级审计由普通 用户自己发起,只针对自己创建的对象设置审计规则,记录所有人对该对象的 全部操作(无论操作是否真的生效)——这是一种”我的地盘我做主”式的自我 监控;系统级审计由系统管理员统一设置,覆盖的是全局性、跨对象的安全 事件(登录成功/失败、GRANT/REVOKE这类权限变更操作),不针对某个具体 用户创建的对象,而是盯着”谁在什么时候动了权限体系本身”。两者互不替代: 用户级审计管不到权限变更这类系统级事件,系统级审计也不会自动覆盖每个 用户对自己数据表的具体读写细节,实践中往往需要两者同时开启才能形成 完整的追溯能力。
参考来源
- 位置:《数据库原理(微课版)》第5章《数据库安全与保护》5.3.3节"数据库
审计"(源文件:_epub-src/index_split_003.html)
- 结论依据:原文明确"审计日志是……数据库管理系统会自动保护审计日志,
防止审计人员和用户修改或删除审计日志的内容。审计人员和普通用户只能
查询、转储审计日志,无权修改""用户级审计是指用户对自己创建的对象
进行审计,记录所有用户对该对象的一切操作……系统级审计由系统管理员
设置,内容包括成功或者失败的登录、GRANT操作、REVOKE操作和其他数据
库级权限下的操作",因此可以推出两种审计方式在设定主体和覆盖范围上
的差异。
- 原始内容:用户级审计是指用户对自己创建的对象进行审计,记录所有用户
对该对象的一切操作,无论是否起效,任何用户都可以设置这类审计;系统
级审计由系统管理员设置,内容包括成功或者失败的登录、GRANT操作、
REVOKE操作和其他数据库级权限下的操作。