D8-07 9–10 分钟 重要程度:高
数据库安全、SQL、ACID 与事务问题
数据库题常考关系模型、键、SQL 分类、事务 ACID 和并发异常。安全判断要同时保护保密性、完整性、可用性和参照完整性。
一、必须记住
- 层次式数据库用树状结构组织记录;分布式数据库由多个站点组成逻辑统一的数据库。
- 关系数据库以行和列组成表,常用 SQL 存储、检索和修改数据。
- Candidate key 可唯一标识记录;Primary key 是被选定的唯一标识;Foreign key 用于建立表间关系并支持参照完整性。
- DDL 定义结构,例如 CREATE;DML 操作数据,例如 INSERT、UPDATE、DELETE;DCL 控制权限,例如 GRANT、REVOKE。
- ACID 是 Atomicity、Consistency、Isolation、Durability。
- Atomicity 表示事务任何一部分失败就整体回滚;Consistency 表示数据库从一致状态到一致状态。
- Isolation 表示事务彼此隔离;Durability 表示提交后记录会被保留,通常依靠日志和备份。
- Lost update 是一个事务写入覆盖另一个事务需要的值;Dirty read 是读取未提交值;Incorrect summary 是汇总时遇到并发修改。
- ODBC 允许应用与不同类型数据库通信;NoSQL 包括键值、图数据库和文档存储。
- SQL injection 通常通过输入验证、参数化查询、最小权限和错误处理降低风险。
二、核心概念
关系数据库基础
关系数据库通过表、行、列和键建立数据结构。主键保证记录唯一性,外键强制表间关系,是维护参照完整性的核心机制。
SQL 与权限
SQL 可分为 DDL、DML、DCL。安全题遇到授权和撤销数据库权限,通常对应 DCL;遇到结构创建或修改,对应 DDL;遇到资料增删改查,对应 DML。
事务与并发
ACID 保护事务可靠性。并发控制不足会导致 lost update、dirty read 和 incorrect summary,破坏完整性和一致性。
三、CISSP 判断规则
- 问唯一标识记录,选 Primary key 或 Candidate key,按题目是否已被选定判断。
- 问表间参照完整性,选 Foreign key。
- 问 GRANT/REVOKE,选 DCL。
- 问事务失败全部回滚,选 Atomicity。
- 问读取另一个未提交事务写入值,选 Dirty read。
四、常见陷阱
- 主键是候选键的一种选择,不是所有候选键都叫主键。
- 持久性不是备份本身,而是提交后数据应保留;日志和备份是实现手段。
- NoSQL 不代表没有安全控制,仍需要认证、授权、加密、审计和输入验证。
五、英文关键字
DBMS Database security Hierarchical database Distributed database Relational database Candidate key Primary key Foreign key Referential integrity SQL DDL DML DCL ACID (数据库事务 ACID) 定义:Atomicity、Consistency、Isolation、Durability。 Lost update (丢失更新) 定义:多个事务覆盖彼此修改导致更新遗失。 Dirty read (脏读) 定义:事务读取了另一个尚未提交事务的数据。 Incorrect summary (错误汇总) 定义:汇总过程中数据被并发修改导致结果不一致。 ODBC (开放数据库连接) 定义:应用连接数据库的标准接口。 NoSQL (非关系型数据库) 定义:不以传统关系表为唯一模型的数据库类别。 SQL injection
小测验
1. 数据库事务任何一部分失败就回滚整个事务,属于 ACID 中哪一项?
Atomicity 表示事务是不可分割单位,部分失败则整体回滚。
2. SQL 中 GRANT 和 REVOKE 属于哪一类?
DCL 是数据控制语言,用于授权和撤销权限。
3. 一个事务读取了另一个尚未提交事务写入的数据,称为?
Dirty read 是读取未提交的数据,可能导致错误判断和完整性问题。
本节进度
完成后会保存在当前浏览器。线上版可保存;不同手机、平板之间暂不自动同步。
尚未完成