数据库的安全性

数据库的安全性

数据库的一大特点是数据可以共享,数据共享必然带来数据库的安全性问题。数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。系统的安全保护措施是否有效是数据库系统主要的性能指标之一。

4.1数据库不安全因素

1.非授权用户身份对数据库的恶意存取和破坏-----安全措施:用户身份鉴别、存取控制、视图

2.数据库中重要或敏感数据被泄露------安全措施:审计、日志、入侵检测、数据加密

3.安全环境脆弱性,包括:硬盘、OS、网络..------可信计算机标准

4.2数据库安全性控制

用户身份鉴别

(系统最外层安全保护措施)系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统。

  1. 静态口令鉴别:口令静态不变,一般由用户设定
  2. 动态口令鉴别:动态变化,一次一密
  3. 生物特征鉴别:指纹、虹膜、掌纹等
  4. 智能卡鉴别:一种不可复制的硬件,具有硬件加密功能

存取控制

  1. 首先,数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。
  2. 然后,在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。
  3. 还可以对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测

4.2.1视图机制

  视图是基于 SQL语句的结果集的可视化的表,视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。视图包含一系列带有名称的列和行数据,数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中,使用视图查询数据时,数据库系统会从原来的表中取出对应的数据,一旦表中的数据发生改变,显示在视图中的数据也会发生改变。

建立计算机系学生视图,把对该视图的SELECT权限授予王平,把该视图上的所有操作权限授予张明

CREATE VIEW CS_Student AS SELECT * FROM StudentWHERE Sdept='CS';

GRANT SELECT ON CS_Student TO 王平;

GRANT ALL PRIVILEGES ON CS_Student TO 张明;

特点

 视图的列可以来自不同的表,是表的抽象和在逻辑上建立的新关系。视图是由基本表(实表)产生的表(虚表)。视图的建立和删除不影响基本表。对视图内容的更新(添加,删除和修改)直接影响基本表。当视图来自多个基本表时,不允许添加和删除数据。

优点

 为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。

用途

 简化sql查询,提高开发效率。如果说还有另外一个用途那就是兼容老的表结构。

缺点

1. 性能–>数据库必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也把它变成一个复杂的结合体,需要花费一定的时间。

2. 修改限制–>当用户试图修改视图的某些行时,数据库必须把它转化为对基本表的某些行的修改。事实上,当从视图中插入或者删除时,情况也是这样。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。

4.2.2审计

  系统自动建立审计日志,将用户对数据库的所有操作记录在上面。审计员利用审计日志监控数据库中的各种行为,找出非法存取数据的人,时间、内容。

  C2以上安全级别的DBMS必须具有审计功能。

审计分类

用户级审计:针对自己创建的数据库表或视图进行审计(记录所有用户一切成功或不成功的访问要求以及各类型的SQL操作)

系统及审计:由DBA设置,检测成功或失败的登录要求,监测GRANT和REVOKE操作以及其他数据库权限下的操作

审计相关语句

AUDIT:设计审计功能

NOAUDIT:取消审计功能

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

audit alter,update on SC;

取消对SC表的一切审计

noaudit alter,update on SC;                          

4.2.3数据加密

  1. 存储加密:对于存储加密,一般提供透明和非透明两种存储加密方式
  2. 传输加密:常用的传输加密方式如链路加密和端到端加密

4.3自主存取控制方法DAC

  用户对不同数据库对象有不同存取权限,不同用户对同一对象有不同权限,用户可将其权限转授其他用户。

  授权:用户可以在哪些数据库对象上进行哪些类型的操作。

 

自主存取控制缺点

  可能存在数据的“无意泄露”

  例如:用户A创建了Customer表,并将读的权限授予了用户B。用户B可以创建新表table1 , 将Customer表的数据读到 table1(即复制了Customer表),之后用户B可以对table1做任何事,还能将权限授予任何其他人。

  原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记

4.4强制存取控制MAC

  系统为保证更高的安全性,按照TDI/TCSEC标准中安全策略要求所采取的强制存取检查手段。由系统安全管理员设置,普通用户不能感知或进行控制。适用于数据严格、固定密集分类的部门,军事、政府部门。

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

  主体:系统中的活动实体,DBMS管理的实际用户,代表用户的各进程。

  客体:被动实体,受主体操作。文件、基表、索引、视图

  对主体客体,DBMS为他们每个实例指派一个敏感度标记(Lable)   

           lable等级:绝密TS>机密S>可信C>公开P 

  lable主体:许可证级别;客体:密级

规则:

1.主体的许可证级别>客体的密集,主体能读客体(向下读)

2.主体的许可证级别<=客体的密集,主体能写客体(向上写)

3.规则关键点:禁止高级许可证级别的主体更新低级密集的客体

强制性存取控制优点:

1.禁止高级许可证级别的主体更新低级密集的数据对象,保证了敏感数据的可靠性

2.禁止低许可证级别的主体浏览高密集的数据,避免了敏感数据的泄露

3.MAC对数据本身进行密级标记,无论数据如何复制,标记与数据是不可分割的整体。只有符合密集标记要求的用户才可以操作相应数据,提高了安全性级别

强制性存取控制方法:

  DAC和MAC共同构成DBMS的安全机制

  实现MAC要首先实现DAC(较高安全级别提供的安全保护要包含较低级别的所有保护)

  强制存取控制MAC是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。

posted @ 2022-07-24 21:13  石元  阅读(974)  评论(0编辑  收藏  举报