DBMS笔记 06 数据库安全性
数据库安全性通过身份鉴别、存取控制、视图和审计等机制,防止数据被未授权访问、篡改或破坏,保障系统安全运行。 其中核心是存取控制,分为灵活但易滥用的 DAC 和严格但不灵活的 MAC,并通过 GRANT 与 REVOKE 实现权限管理。
DBMS笔记 06 数据库安全性
第六章 数据库安全性
一、数据库安全性的基本概念
- 数据库安全性:防止数据泄露、篡改、破坏,保证合法用户正常使用。
- 主要威胁:非授权访问、恶意攻击、权限滥用、软件漏洞、硬件故障。
四大安全控制技术:
- 用户身份鉴别:登录验证(口令、身份证明、智能卡等)。
- 存取控制(Access Control):按权限访问数据库。
- 视图机制:通过视图只暴露需要的数据。
- 审计(Audit):记录操作行为,事后追查。
二、存取控制(Access Control)
两种存取控制方法
- 自主存取控制 (DAC):
- 每个数据对象的所有者可授权/回收权限。
- 灵活,但容易被滥用。
- 强制存取控制 (MAC):
- 每个对象有密级,每个用户有许可级别。
- 用户只能访问 ≤ 自己级别的数据。
- 安全,但不够灵活。
- DAC 是“谁拥有谁授权”;MAC 是“系统按安全级别硬性规定”。
- DAC 灵活但不绝对安全,MAC 安全但不灵活。
三、授权与回收
通过 SQL 的 GRANT 与 REVOKE 实现。
GRANT 语句(授权)
GRANT <权限> ON <对象类型> <对象名>
TO <用户/角色> [WITH GRANT OPTION];
- WITH GRANT OPTION:允许受权人再转授权限。
- 授权可针对表、视图、属性列。
REVOKE 语句(回收)
REVOKE <权限> ON <对象类型> <对象名>
FROM <用户/角色> [CASCADE | RESTRICT];
- CASCADE:级联回收,被转授出去的权限也一并回收。
- RESTRICT:如果权限已转授,就拒绝回收。
- DROP 删除的是表定义,不是删除数据。
- DELETE 删除表中的数据。
- REVOKE 是收回权限。
四、用户与角色
- 用户 (User):数据库中登录的主体。
- 角色 (Role):权限集合,方便分配。
- SQL 创建用户:
CREATE USER <用户名> [WITH DBA | RESOURCE | CONNECT];
区别
- 安全性 vs 完整性
- 安全性:防止非授权访问。
- 完整性:防止合法操作造成错误。
- DAC 与 MAC 区别
- DAC:用户可灵活转授。
- MAC:用户不能转授,系统强制控制。
- GRANT & REVOKE 的方向
- GRANT:授权(DBA/所有者 → 用户)。
- REVOKE:回收(DBA/所有者 → 用户)。
- 常见问题
- “数据库用户由 DBMS 自动创建” → 错(要 DBA/管理员创建)。
- “SQL 语句中,用户授权使用 GRANT,撤销使用 REVOKE” → 对。
- “授权越细越灵活,系统越复杂” → 对。
速记
- 四大控制:身份鉴别、存取控制、视图、审计。
- 两类存取控制:DAC 灵活、MAC 严格。
- 授权命令:GRANT … TO … [WITH GRANT OPTION]。
- 回收命令:REVOKE … FROM … [CASCADE/RESTRICT]。
- 关键区别:DELETE 删除数据;DROP 删除表;REVOKE 收回权限。
本文由作者按照 CC BY-NC 4.0. 进行授权
...

Comments
评论区