avatar

Ryan-Hong's Tech Blog

Stay Humble

  • 首页
  • 分类
  • 技术栈
  • 知识库
Home 数据库系统---数据库安全性
文章

数据库系统---数据库安全性

Posted 昨天 Updated 昨天
By Administrator
44~57 min read

数据库安全性概述

安全标准简介

目前CC已基本取代了TCSEC,成为评估信息产品安全性的主要标准

TCSEC/TDI安全级别划分:

D级:将一切不符合更高标准的系统均归于D组。

C1级:非常初级的自主安全保护,进行自主存取控制(DAC)

C2级:安全产品的最低档次

B1级:标记安全保护,实施强制存取控制(MAC)

B2级:结构化保护,实施DAC和MAC

B3级:安全域,提供系统恢复过程

A1级:验证设计

CC评估保证级(EAL)划分:

数据库安全性控制

  • 系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统

  • 数据库管理系统还要进行存取控制,只允许用户执行合法操作

  • 操作系统有自己的保护措施

  • 数据以密码形式存储到数据库中

数据库安全性控制的常用方法

  • 用户标识和鉴定

  • 存取控制

  • 视图

  • 审计

  • 数据加密

用户身份鉴别

用户身份鉴别的方法

1.静态口令鉴别

静态口令一般由用户自己设定,这些口令是静态不变的

2.动态口令鉴别

口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法

3.生物特征鉴别

通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等

4.智能卡鉴别

智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能

存取控制

存取控制机制组成

  • 定义用户权限,并将用户权限登记到数据字典中

    • 用户对某一数据对象的操作权力称为权限

    • DBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则或授权规则

  • 合法权限检查

    • 用户发出存取数据库操作请求

    • DBMS查找数据字典,进行合法权限检查

用户权限定义和合法权检查机制一起组成了数据库管理系统的存取控制子系统

自主存取控制

自主存取控制(Discretionary Access Control ,简称DAC)

  • C2级

  • 用户对不同的数据对象有不同的存取权限

  • 不同的用户对同一对象也有不同的权限

  • 用户还可将其拥有的存取权限转授给其他用户

强制存取控制

强制存取控制(Mandatory Access Control,简称 MAC)

  • B1级

  • 每一个数据对象被标以一定的密级

  • 每一个用户也被授予某一个级别的许可证

  • 对于任意一个对象,只有具有合法许可证的用户才可以存取

自主存取控制方法

通过 SQL 的GRANT 语句和REVOKE 语句实现

用户权限组成

  • 数据对象

  • 操作类型

定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作

定义存取权限称为授权

关系数据库系统中存取控制对象

授权:授予与回收

GRANT

GRANT语句的一般格式:

GRANT <权限>/<ALL PRIVILIGES(所有权限)>[,<权限>]...

ON <对象类型> <对象名>[,<对象类型> <对象名>]…

TO <用户>[,<用户>]...

[WITH GRANT OPTION];

发出GRANT:

  • 数据库管理员

  • 数据库对象创建者(即属主Owner)

  • 拥有该权限的用户

按受权限的用户

  • 一个或多个具体用户

  • PUBLIC(即全体用户)

WITH GRANT OPTION子句:

  • 指定:可以再授予

  • 没有指定:不能传播

不允许:

[例4.1] 把查询Student表权限授给用户U1

GRANT SELECT

ON TABLE Student

TO U1;

[例4.2] 把对Student表和Course表的全部权限授予用户U2和U3

GRANT ALL PRIVILIGES(所有权限)

ON TABLE Student,Course

TO U2,U3;

[例4.3] 把对表SC的查询权限授予所有用户

GRANT SELECT

ON TABLE SC

TO PUBLIC(所有用户);

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

GRANT UPDATE(Sno), SELECT

ON TABLE Student

TO U4;

[例4.5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

GRANT INSERT

ON TABLE SC

TO U5

WITH GRANT OPTION;

执行例4.5后,U5不仅拥有了对表SC的INSERT权限,

还可以传播此权限:

[例4.6] GRANT INSERT

ON TABLE SC

TO U6

WITH GRANT OPTION;

同样,U6还可以将此权限授予U7:

[例4.7] GRANT INSERT

ON TABLE SC

TO U7;

但U7不能再传播此权限。

用户权限定义表:

REVOKE

授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回

REVOKE语句的一般格式为:

REVOKE <权限>[,<权限>]...

ON <对象类型> <对象名>[,<对象类型><对象名>]…

FROM <用户>[,<用户>]...[CASCADE | RESTRICT];

CASCADE:级联

创建数据库模式的权限

数据库管理员在创建用户时实现

CREATE USER语句格式:

CREATE USER <username>

[WITH][DBA|RESOURCE|CONNECT];

CREATE USER语句格式说明

  • 只有系统的超级用户才有权创建一个新的数据库用户

  • 新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA

  • 如没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库

数据库角色

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

  • 角色是权限的集合

  • 可以为一组具有相同权限的用户创建一个角色

  • 简化授权的过程

1.角色的创建

CREATE ROLE <角色名>

2.给角色授权

GRANT <权限>[,<权限>]…

ON <对象类型>对象名

TO <角色>[,<角色>]…

3.将一个角色授予其他的角色或用户

GRANT <角色1>[,<角色2>]…

TO <角色3>[,<用户1>]…

[WITH ADMIN OPTION]

  • 该语句把角色授予某用户,或授予另一个角色

  • 授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION

  • 指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权限授予其他角色

一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限

4.角色权限的收回

REVOKE <权限>[,<权限>]…

ON <对象类型> <对象名>

FROM <角色>[,<角色>]…

用户可以回收角色的权限,从而修改角色拥有的权限

REVOKE执行者是

角色的创建者

拥有在这个(些)角色上的ADMIN OPTION

强制存取控制方法

强制存取控制(MAC):

保证更高程度的安全性

用户不能直接感知或进行控制

适用于对数据有严格而固定密级分类的部门

  • 军事部门

  • 政府部门

实体

在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类

主体是系统中的活动实体

  • 数据库管理系统所管理的实际用户

  • 代表用户的各进程

客体是系统中的被动实体,受主体操纵

  • 文件、基本表、索引、视图

敏感度标记(Label)

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

敏感度标记分成若干级别

绝密(Top Secret,TS)

机密(Secret,S)

可信(Confidential,C)

公开(Public,P)

TS>=S>=C>=P

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

客体的敏感度标记称为密级(Classification Level)

强制存取控制规则

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

(2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体

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

视图机制

把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护

间接地实现支持存取谓词的用户权限定义

审计

审计功能的可选性

  • 审计很费时间和空间

  • DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能

  • 审计功能主要用于安全性要求较高的部门

AUDIT语句和NOAUDIT语句:

AUDIT语句:设置审计功能

NOAUDIT语句:取消审计功能

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

AUDIT ALTER,UPDATE

ON SC;

[例4.16] 取消对SC表的一切审计

NOAUDIT ALTER,UPDATE

ON SC;

数据加密

数据加密

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

加密的基本思想

根据一定的算法将原始数据—明文(Plain text)变换为不可直接识别的格式­—密文(Cipher text)

加密方法

  • 存储加密

  • 传输加密

知识库
DataBase
License:  CC BY 4.0
Share

Further Reading

Jun 13, 2025

数据库系统---数据模型

层次模型 层次模型是数据库系统中最早出现的数据模型 层次模型用树形结构来表示各类实体以及实体间的联系 满足下面两个条件的基本层次联系的集合为层次模型 1. 有且只有一个结点没有双亲结点,这个结点称为根结点 2. 根以外的其它结点有且只有一个双亲结点 层次模型的特点: 结点

Jun 13, 2025

数据库系统---视图

定义视图 建立视图 CREATE VIEW <视图名> [(<列名> [,<列名>]…)] AS <子查询>

Jun 12, 2025

数据库系统---未掌握

T1: 查询工资最高的前两名教师的信息。 Select Top 2 * -----Top <number> 取前2个 From Teacher Order By Tincome Desc;

OLDER

数据库系统---并发控制

NEWER

数据库系统---T_SQL

Recently Updated

  • 数据库系统---数据模型
  • 数据库系统---视图
  • 数据库系统---未掌握
  • 数据库系统---连接查询
  • 数据库系统---数据库完整性

Trending Tags

thesis 色彩 NLP Typora Java Linux 数据分析 pandas DataBase ES

Contents

©2025 Ryan-Hong's Tech Blog. Some rights reserved.

Using the Halo theme Chirpy