Skip to content
Self-Knowing

第四章 数据库安全性

约 1304 个字 36 行代码 预计阅读时间 5 分钟

数据库的安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。

数据库管理系统(DBMS)提供的

  • 安全措施:用户身份鉴别、 存取控制、视图
  • 主要技术:强制存取控制、数据加密存储、加密传输、审计日志分析

安全标准

TCSEC/TDI

TCSEC/TDI:《可信计算机系统评估标准关于可信数据库系统的解释》( Trusted Database Interpretation 简称TDI)

安全等级划分:

image-20240305212542910

CC标准

国际公认的表述信息技术安全性的结构,把信息产品的安全要求分为 安全功能要求、安全保证要求。

数据库安全性控制

数据库安全性主要包括:用户身份验证、多层存取控制、审计、视图、数据加密。

image-20240305215147589

用户身份鉴别

常用方法:静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别

存取控制

定义用户权限,合法权限检查。

常用存取控制方法

  • 自主存取控制(DAC,Discretionary Access Control):它允许用户根据自己的判断控制自己拥有的资源或数据的访问权限。
  • 强制存取控制(MAC,Mandatory Access Control):访问权限由系统根据标签(如机密级别、角色等)和访问控制策略来管理。

授权:授予和回收

SQL通过 GRANT 语句和 REVOKE 语句实现自主存取控制。

image-20240305223440661

GRANT

一般格式:

grant <权限>
on <对象类型> <对象名>
to <用户>
[with grant option]
  • with grant option:表示该权限可以在授权给其他用户。

例句:

把查询Student表和修改学生学号的权限授给用户U4

grant update(Sno),select
on TABLE Student
to U4

REVOKE

谁给出的权限,谁收回

一般格式:

revoke <权限>
on <对象类型> <对象名>
from <用户>
[cascade | restrict]
  • Cascade : 使得从 <用户> 发放的权限也收回

例句:

把用户 U5  SC 表的 insert 权限收回

revoke insert
on table SC
from U5 cascade

总结

授权的权限

  1. 数据管理员
    • 拥有所有对象的所有权限
  2. 用户
    • 拥有自己建立的对象的全部权限
    • 可以使用 GRANT,把权限授予其他用户
  3. 被授权的用户
    • 如果有 with grant option,可以继续授权给别的用户
  4. REVOKE 收回权限

数据库模式的权限

数据库管理员(DBA)在创建用户时实现对创建数据库模式的权限

create user <username>
[with] [DBA | RESOURCE | CONNECT
  • 只有系统的超级用户才有权创建一个新的数据库用户
  • 新创建的数据库用户有三种权限:CONNECTRESOURCEDBA
  • 如没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库

image-20240305225659847

数据库角色

数据库角色:被命名的一组与数据库操作相关的权限

  • 角色是权限的集合
  • 简化授权的过程

创建

create role <角色名>

授权

grant <权限>
on <对象类型> <对象名>
to <角色>
[with admin option]

收回

revoke <权限>
on <对象类型> <对象名>
from <用户>

强制存取控制

自主存取控制存在数据 “无意泄露“ 的风险,原因在于 没对数据本身进行安全保护。

实体分类

主体:是系统中的活动实体。

  • 数据库管理系统所管理的实际用户
  • 代表用户的各进程客体

客体:是系统中的被动实体

  • 受主体操纵 文件、基本表、索引、视图

敏感度标记(Label)

对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)

敏感度标记分成若干级别:绝密(Top Secret,TS),机密(Secret,S),可信(Confidential,C),公开(Public,P)。

  • 主体的敏感度标记称为许可证级别(Clearance Level)
  • 客体的敏感度标记称为密级(Classification Level)

规则

(1)仅当主体的许可证级别 大于或等于 客体的密级时,该主体才能 读取 相应的客体 等级高的能看等级低的

(2)仅当主体的许可证级别 小于或等于 客体的密级时,该主体才能 相应的客体 等级高的要隐藏好,不能自降身份

DAC+MAC 安全检查

系统首先进行自主存取控制检查,通过自主存取控制检查的数据对象,再由系统进行强制存取控制检查,只有通过强制存取控制检查的数据对象方可存取。

审计

审计日志:启用一个专用的审计日志,将用户对数据库的所有操作记录在上面。

审计事件:服务器时间、系统权限、语句事件、服务对象事件

审计分类:用户级审计和系统级审计。

对修改 SC 表结构或修改 SC表数据的操作进行审计

audit alter,update on SC;

取消对 SC 表的一切审计

noaudit alter,update on SC;

数据加密

数据加密:防止数据库中数据在存储和传输中失密的有效手段。

  • 基本思想:根据一定的算法将原始数据(明文)变化为不可直接识别的格式(密文)。

  • 存储加密:透明存储加密,非透明存储加密。

  • 传输加密:链路加密,端到端加密。

可信传输步骤:

  • 第一步:创建可信连接(CA 数字证书)
  • 第二步:确认通信双方端点的可靠性
  • 第三步:写上加密算法和密钥
  • 第四步:可信传输数据
  • 第五步:关闭可信连接

其他安全性保护:推理控制、隐蔽新到、数据隐私保护。


Created: April 24, 2026
Last update: April 24, 2026

Discussion