--- title: 数据库安全与恢复 tags: - module - database - security - recovery - joplin type: module source_type: reconstructed created: 2026-04-22 updated: 2026-04-22 --- # 数据库安全与恢复 > [!abstract] > 这一模块讨论数据库在长期运行里怎么“守得住、救得回”。前者是安全控制,后者是故障恢复和高可用。 ## 模块结论 - 数据库安全不是单一权限表,而是认证、授权、加密、审计等机制配合的结果。 - [[数据库恢复]] 的关键骨架是日志、备份、检查点和故障分类。 - 安全和恢复共同服务于数据库的可信运行,不只是运维附属内容。 ## 一、数据库安全目标 - 机密性:防止未授权访问和泄露。 - 完整性:防止非法篡改。 - 可用性:保证合法用户持续可访问。 ## 二、安全控制机制 ### 身份认证 - 确认“你是谁”。 - 可以通过口令、多因素、证书等手段实现。 ### 存取控制 - DAC:自主存取控制,由用户授权。 - MAC:强制存取控制,基于安全级别。 ### 审计与加密 - 审计:记录关键操作,便于追踪异常行为。 - 加密:保护传输和存储中的敏感数据。 ### 视图机制的安全价值 - 通过只暴露部分字段或部分行实现访问隔离。 - 它既是抽象工具,也是安全工具。 ## 三、数据库恢复依赖什么 - 日志文件:记录事务操作顺序。 - WAL 原则:先写日志后写数据库。 - 检查点:定期记录稳定状态,加速恢复。 - 备份:提供更大范围故障后的基础恢复点。 ## 四、故障类型与恢复策略 ### 事务故障 - 事务执行失败或主动回滚。 - 典型处理是 UNDO。 ### 系统故障 - 断电、崩溃、系统异常导致内存状态丢失。 - 需要 UNDO 未提交事务并 REDO 已提交事务。 ### 介质故障 - 磁盘损坏、文件损坏、设备失效。 - 需要通过备份重装后再结合日志恢复。 ## 五、备份与高可用 - 全量备份:恢复快,但成本高。 - 增量备份:节省空间,但恢复链更复杂。 - 差异备份:折中方案。 - 主从复制、集群、异地容灾属于更高层的可用性设计。 ## 六、易错点 - 安全不等于只有授权语句,恢复也不等于只有备份文件。 - UNDO 和 REDO 的对象不同,不要混成一类“回放日志”。 - 容灾是系统级问题,不只是数据库单机恢复。 ## 七、复习提问 - DAC 和 MAC 的控制思路有何不同? - 为什么日志必须先于数据库页落盘? - 事务故障、系统故障、介质故障分别怎么恢复? ## 来源 - [[raw/Joplin/计算机专业基础/数据库/_计算机考研复试数据库核心知识点整理.md]] - [[raw/Joplin/计算机专业基础/数据库/5.数据库——数据库安全与恢复.md]] ## 相关页面 - [[数据库]] - [[数据库事务与并发控制]] - [[数据库恢复]]