文章

DBMS笔记 06 数据库安全性

数据库安全性通过身份鉴别、存取控制、视图和审计等机制,防止数据被未授权访问、篡改或破坏,保障系统安全运行。 其中核心是存取控制,分为灵活但易滥用的 DAC 和严格但不灵活的 MAC,并通过 GRANT 与 REVOKE 实现权限管理。

DBMS笔记 06 数据库安全性

第六章 数据库安全性

一、数据库安全性的基本概念

  • 数据库安全性:防止数据泄露、篡改、破坏,保证合法用户正常使用。
  • 主要威胁:非授权访问、恶意攻击、权限滥用、软件漏洞、硬件故障。

四大安全控制技术

  1. 用户身份鉴别:登录验证(口令、身份证明、智能卡等)。
  2. 存取控制(Access Control):按权限访问数据库。
  3. 视图机制:通过视图只暴露需要的数据。
  4. 审计(Audit):记录操作行为,事后追查。

二、存取控制(Access Control)

两种存取控制方法

  • 自主存取控制 (DAC)
    • 每个数据对象的所有者可授权/回收权限。
    • 灵活,但容易被滥用。
  • 强制存取控制 (MAC)
    • 每个对象有密级,每个用户有许可级别
    • 用户只能访问 ≤ 自己级别的数据。
    • 安全,但不够灵活。
  • DAC 是“谁拥有谁授权”;MAC 是“系统按安全级别硬性规定”。
  • DAC 灵活但不绝对安全,MAC 安全但不灵活。

三、授权与回收

通过 SQL 的 GRANTREVOKE 实现。

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];

区别

  1. 安全性 vs 完整性
    • 安全性:防止非授权访问。
    • 完整性:防止合法操作造成错误。
  2. DAC 与 MAC 区别
    • DAC:用户可灵活转授。
    • MAC:用户不能转授,系统强制控制。
  3. GRANT & REVOKE 的方向
    • GRANT:授权(DBA/所有者 → 用户)。
    • REVOKE:回收(DBA/所有者 → 用户)。
  4. 常见问题
    • “数据库用户由 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

评论区

碎片之中

正在加载中...