第四章----数据库的安全性

  1. 问题的提出

数据库的一大特点是数据可以共享

数据共享必然带来数据库的安全性问题

数据库系统中的数据共享不能是无条件的共享

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

系统安全保护措施是否有效是数据库系统主要的性能指标之一。

2.非授权用户对数据库的恶意存取和破坏

一些黑客(Hacker)和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。

数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。

3. 数据库中重要或敏感的数据被泄露

黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。

数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。

审计日志分析

4. 安全环境的脆弱性

数据库的安全性与计算机系统的安全性紧密联系

计算机硬件、操作系统、网络系统等的安全性

建立一套可信(Trusted)计算机系统的概念和标准

5. 四组(division)7个等级

 D

 C(C1,C2)

 B(B1,B2,B3)

 A(A1)

按系统可靠或可信程度逐渐增高

各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力

6. D

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

典型例子:DOS是安全标准为D的操作系统

 DOS在安全性方面几乎没有什么专门的机制来保障

7. C1

非常初级的自主安全保护

能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。

现有的商业系统稍作改进即可满足

8. C2

安全产品的最低档次

提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离

达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色典型例子

 Windows 2000

 Oracle 7

9. B1

标记安全保护。“安全”(Security)或“可信的” (Trusted)产品。

对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制

B1级典型例子

 操作系统

惠普公司的HP-UX BLS release 9.09+

 数据库

Oracle公司的Trusted Oracle 7

Sybase公司的Secure SQL Server version 11.0.6

10. B2

结构化保护

建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC

11. 非法使用数据库的情况

编写合法程序绕过数据库管理系统及其授权机制

直接或编写应用程序执行非授权操作

通过多次合法查询数据库从中推导出一些保密数据

12. 用户身份鉴别的方法

1.静态口令鉴别

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

2.动态口令鉴别

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

3.生物特征鉴别

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

4.智能卡鉴别

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

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

用户权限组成

数据对象

操作类型

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

定义存取权限称为授权

14. GRANT

GRANT语句的一般格式:

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

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

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

       [WITH GRANT OPTION];

语义:将对指定操作对象的指定操作权限授予指定的用户

15. REVOKE

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

REVOKE语句的一般格式为:

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

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

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

16. 数据库管理员:

拥有所有对象的所有权限

根据实际情况不同的权限授予不同的用户

用户:

拥有自己建立的对象的全部的操作权限

可以使用GRANT,把权限授予其他用户

被授权的用户

如果具有“继续授权”的许可,可以把获得的权限再授予其他用户

所有授予出去的权力在必要时又都可用REVOKE语句收回

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

角色是权限的集合

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

简化授权的过程

18. 角色的创建

CREATE  ROLE  <角色名>

2.给角色授权

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

 ON <对象类型>对象名 

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

 

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

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

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

[WITH ADMIN OPTION]

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

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

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

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

授予这个角色的全部权限

20. .角色权限的收回

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

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

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

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

REVOKE执行者是

角色的创建者

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

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

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

解决:对系统控制下的所有主客体实施强制存取控制策略

22. 强制存取控制(MAC)

保证更高程度的安全性

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

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

 军事部门

 政府部门

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

主体是系统中的活动实体

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

 代表用户的各进程

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

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

24. 敏感度标记(Label)

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

 敏感度标记分成若干级别

绝密(Top Secret,TS)

机密(Secret,S)

可信(Confidential,C)

公开(Public,P)

TS>=S>=C>=P

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

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

25.视图机制:

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

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

26. 什么是审计

启用一个专用的审计日志(Audit Log)

   将用户对数据库的所有操作记录在上面

审计员利用审计日志

监控数据库中的各种行为,找出非法存取数据的人、时

间和内容

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

27. .审计事件

服务器事件

审计数据库服务器发生的事件

系统权限

对系统拥有的结构或模式对象进行操作的审计

要求该操作的权限是通过系统权限获得的

语句事件

对SQL语句,如DDL、DML、DQL及DCL语句的审计

模式对象事件

对特定模式对象上进行的SELECT或DML操作的审计  

28. 审计功能

基本功能

提供多种审计查阅方式

多套审计规则:一般在初始化设定

提供审计分析和报表功能

审计日志管理功能

防止审计员误删审计记录,审计日志必须先转储后删除

对转储的审计记录文件提供完整性和保密性保护

只允许审计员查阅和转储审计记录,不允许任何用户新增和修改审计记录等

提供查询审计设置及审计记录信息的专门视图

29. 数据加密

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

加密的基本思想

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

加密方法

存储加密

传输加密

30.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值