文档介绍:该【{安全生产管理}数据库系统概论04数据库安全性 】是由【流金岁月】上传分享,文档一共【72】页,该文档可以免费在线阅读,需要了解更多关于【{安全生产管理}数据库系统概论04数据库安全性 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
数据库安全性
 问题的提出
数据库的一大特点是数据可以共享
数据共享必然带来数据库的安全性问题
数据库系统中的数据共享不能是无条件的共享
例: 军事秘密、国家机密、新产品实验数据、
        市场需求分析、市场营销策略、销售计划、
        客户档案、医疗档案、银行储蓄数据
数据库安全性
AnIntroductiontoDatabaseSystems:.
第四章数据库安全性
(Audit)
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
 计算机系统安全性
为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬
件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到
更改或泄露等。
AnIntroductiontoDatabaseSystems:.
计算机系统的三类安全性问题(续)
三类计算机系统安全性问题
技术安全类
管理安全类
政策法律类
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
第四章数据库安全性
(Audit)
AnIntroductiontoDatabaseSystems:.
非法使用数据库的情况
编写合法程序绕过DBMS及其授权机制
直接或编写应用程序执行非授权操作
通过多次合法查询数据库从中推导出一些保密数据
AnIntroductiontoDatabaseSystems:.
数据库安全性控制概述(续)
计算机系统中,安全措施是一级一级层层设置
计算机系统的安全模型
AnIntroductiontoDatabaseSystems:.
数据库安全性控制概述(续)
数据库安全性控制的常用方法
用户标识和鉴定
存取控制
视图
审计
密码存储
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
用户标识与鉴别
  (Identification &  Authentication)
系统提供的最外层安全保护措施
AnIntroductiontoDatabaseSystems:.
用户标识与鉴别(续)
用户标识
口令
系统核对口令以鉴别用户身份 
用户名和口令易被窃取
每个用户预先约定好一个计算过程或者函数
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
存取控制机制组成
定义用户权限
合法权限检查 
用户权限定义和合法权检查机制一起组成了  DBMS的安全子系统
AnIntroductiontoDatabaseSystems:.
存取控制(续)
常用存取控制方法
自主存取控制(Discretionary Access Control ,简称DAC)
 C2级
 灵活
强制存取控制(Mandatory Access Control,简称 MAC)
B1级
严格
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
通过 SQL 的 GRANT 语句和 REVOKE 语句实现
用户权限组成
数据对象
操作类型
定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权 
AnIntroductiontoDatabaseSystems:.
自主存取控制方法(续)
关系数据库系统中存取控制对象 
对象类型对象操作类型
数据库模式CREATESCHEMA
基本表CREATETABLE,ALTERTABLE
模式视图CREATEVIEW
索引CREATEINDEX
数据基本表和视SELECT,INSERT,UPDATE,DELETE,REFERENCES
图,
ALLPRIVILEGES
数据属性列SELECT,INSERT,UPDATE,REFERENCES
ALLPRIVILEGES
关系数据库系统中的存取权限
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
一、GRANT
GRANT语句的一般格式:
       GRANT <权限>[,<权限>]... 
       [ON <对象类型> <对象名>]
       TO <用户>[,<用户>]...
       [WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户 
AnIntroductiontoDatabaseSystems:.
GRANT(续)
发出GRANT:
DBA
数据库对象创建者(即属主Owner)
拥有该权限的用户
按受权限的用户 
一个或多个具体用户
PUBLIC(全体用户)  
AnIntroductiontoDatabaseSystems:.
WITHGRANTOPTION子句
WITH GRANT OPTION子句:
指定:可以再授予
没有指定:不能传播
不允许循环授权
AnIntroductiontoDatabaseSystems:.
例题
[例1]把查询Student表权限授给用户U1
      GRANT   SELECT 
      ON   TABLE   Student 
      TO   U1;
AnIntroductiontoDatabaseSystems:.
例题(续)
[例2] 把对Student表和Course表的全部权限授予用户U2和U3
      GRANT ALL PRIVILIGES 
      ON TABLE Student, Course 
      TO U2, U3;
AnIntroductiontoDatabaseSystems:.
例题(续)
[例3] 把对表SC的查询权限授予所有用户
     GRANT SELECT 
     ON TABLE SC 
  TO PUBLIC;
AnIntroductiontoDatabaseSystems:.
例题(续)
[例4] 把查询Student表和修改学生学号的权限授给
用户U4
 
  GRANT UPDATE(Sno), SELECT 
ON TABLE Student 
TO U4;
对属性列的授权时必须明确指出相应属性列名 
AnIntroductiontoDatabaseSystems:.
例题(续)
[例5] 把对表SC的INSERT权限授予U5用户,
并允许他再将此权限授予其他用户
     
    GRANT INSERT 
    ON TABLE SC 
    TO U5
    WITH GRANT OPTION;
AnIntroductiontoDatabaseSystems:.
传播权限
执行例5后,U5不仅拥有了对表SC的INSERT权限,
 还可以传播此权限:
 [例6] GRANT INSERT ON TABLE SC TO U6
        WITH GRANT OPTION;
 同样,U6还可以将此权限授予U7:
 [例7] GRANT INSERT ON TABLE SC TO U7;
  但U7不能再传播此权限。
  
AnIntroductiontoDatabaseSystems:.
传播权限(续)
    下表是执行了[例1]到[例7]的语句后,学生-课程数据库
中的用户权限定义表 
授权用户名被授权用户名数据库对象名允许的操作类型能否转授权
DBAU1关系StudentSELECT不能
DBAU2关系StudentALL不能
DBAU2关系CourseALL不能
DBAU3关系StudentALL不能
DBAU3关系CourseALL不能
DBAPUBLIC关系SCSELECT不能
DBAU4关系StudentSELECT不能
DBAU5关系SCINSERT能
U5U6关系SCINSERT能
U6U7关系SCINSERT不能
AnIntroductiontoDatabaseSystems:.
授权与回收(续)
二、REVOKE
授予的权限可以由DBA或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:
      REVOKE <权限>[,<权限>]... 
      [ON <对象类型> <对象名>]
      FROM <用户>[,<用户>]...;
AnIntroductiontoDatabaseSystems:.
REVOKE(续)
[例8] 把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student 
FROM U4;
AnIntroductiontoDatabaseSystems:.
REVOKE(续)
[例9] 收回所有用户对表SC的查询权限
REVOKE SELECT 
ON TABLE SC 
FROM PUBLIC;
    
AnIntroductiontoDatabaseSystems:.
REVOKE(续)
[例10] 把用户U5对SC表的INSERT权限收回
REVOKE INSERT 
ON TABLE SC 
FROM U5 CASCADE ;
将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回 
系统只收回直接或间接从U5处获得的权限 
AnIntroductiontoDatabaseSystems:.
REVOKE(续)
     执行[例8]到[例10]的语句后,学生-课程数据库中的用户权限定
义表
授权用户名被授权用户名数据库对象名允许的操作类型能否转授权
DBAU1关系StudentSELECT不能
DBAU2关系StudentALL不能
DBAU2关系CourseALL不能
DBAU3关系StudentALL不能
DBAU3关系CourseALL不能
DBAU4关系StudentSELECT不能
AnIntroductiontoDatabaseSystems:.
小结:SQL灵活的授权机制
DBA:拥有所有对象的所有权限
不同的权限授予不同的用户
用户:拥有自己建立的对象的全部的操作权限
GRANT:授予其他用户
被授权的用户
“继续授权”许可:再授予
所有授予出去的权力在必要时又都可用REVOKE语句收回
AnIntroductiontoDatabaseSystems:.
授权与回收(续)
三、创建数据库模式的权限
DBA在创建用户时实现
CREATE USER语句格式
              CREATE  USER  <username> 
            [WITH][DBA | RESOURCE | CONNECT]
AnIntroductiontoDatabaseSystems:.
授权与回收(续)
拥有的权限可否执行的操作
CREATECREATESCHEMACREATETABLE登录数据库执行数据查询和
USER操纵
DBA可以可以可以可以
RESOURC不可以不可以不可以不可以
E
CONNECT不可以不可以不可以可以,但必须拥有相应权限
权限与可执行的操作对照表
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
数据库角色:被命名的一组与数据库操作相关的权限
角色是权限的集合 
可以为一组具有相同权限的用户创建一个角色
简化授权的过程
AnIntroductiontoDatabaseSystems:.
数据库角色
一、角色的创建
CREATE  ROLE  <角色名> 
二、给角色授权 
 GRANT  <权限>[,<权限>]… 
 ON <对象类型>对象名  
 TO <角色>[,<角色>]…
AnIntroductiontoDatabaseSystems:.
数据库角色
三、将一个角色授予其他的角色或用户
GRANT  <角色1>[,<角色2>]…
TO  <角色3>[,<用户1>]… 
[WITH ADMIN OPTION] 
四、角色权限的收回
REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…
AnIntroductiontoDatabaseSystems:.
数据库角色(续)
[例11] 通过角色来实现将一组权限授予一个用户。
步骤如下:
1. 首先创建一个角色 R1
    CREATE  ROLE  R1;
2. 然后使用GRANT语句,使角色R1拥有Student表的
SELECT、UPDATE、INSERT权限
    GRANT SELECT,UPDATE,INSERT 
    ON TABLE Student 
    TO R1;
AnIntroductiontoDatabaseSystems:.
数据库角色(续)
3. 将这个角色授予王平,张明,赵玲。使他们具有角色
R1所包含的全部权限
    GRANT  R1 
    TO 王平,张明,赵玲;
4. 可以一次性通过R1来回收王平的这3个权限
     REVOKE  R1 
     FROM 王平;
AnIntroductiontoDatabaseSystems:.
数据库角色(续)
[例12] 角色的权限修改
      GRANT DELETE 
      ON TABLE Student
      TO R1
AnIntroductiontoDatabaseSystems:.
数据库角色(续)
[例13]
    REVOKE SELECT 
    ON TABLE Student
    FROM  R1;
    
AnIntroductiontoDatabaseSystems:.
AnIntroductiontoDatabaseSystems:.
自主存取控制缺点
可能存在数据的“无意泄露”
原因:这种机制仅仅通过对数据的存取权限来进行安
全控制,而数据本身并无安全性标记
解决:对系统控制下的所有主客体实施强制存取控制
策略
    
AnIntroductiontoDatabaseSystems:.
强制存取控制(MAC)
保证更高程度的安全性
用户能不能直接感知或进行控制
适用于对数据有严格而固定密级分类的部门
 军事部门
 政府部门
AnIntroductiontoDatabaseSystems:.
强制存取控制方法(续)
主体是系统中的活动实体
 DBMS所管理的实际用户
 代表用户的各进程
客体是系统中的被动实体,是受主体操纵的
 文件
 基表
 索引
 视图
AnIntroductiontoDatabaseSystems:.
强制存取控制方法(续)
敏感度标记(Label)
绝密(Top Secret)
机密(Secret)
可信(Confidential)
公开(Public)
主体的敏感度标记称为许可证级别(Clearance Level)
客体的敏感度标记称为密级(Classification Level)
AnIntroductiontoDatabaseSystems:.
强制存取控制方法(续)
 强制存取控制规则
 (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的
客体
 (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体
修正规则
主体的许可证级别 <=客体的密级     主体能写客体
AnIntroductiontoDatabaseSystems:.
强制存取控制方法(续)
规则的共同点
禁止了拥有高许可证级别的主体更新低密级的数
据对象
AnIntroductiontoDatabaseSystems:.
MAC与DAC
DAC与MAC共同构成DBMS的安全机制
实现MAC时要首先实现DAC
原因:较高安全性级别提供的安全保护要包含较低级别的所有保护
AnIntroductiontoDatabaseSystems:.
强制存取控制方法(续)
DAC + MAC安全检查示意图
                SQL语法分析 & 语义检查
 
                              DAC 检 查
       安全检查 
                              MAC 检 查
                             
                               
                                 继 续
先进行DAC检查,通过DAC检查的数据对象再由系统进行
MAC检查,只有通过MAC检查的数据对象方可存取。
AnIntroductiontoDatabaseSystems:.
第四章数据库安全性
(Audit)
AnIntroductiontoDatabaseSystems:.
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供
一定程度的安全保护 
主要功能是提供数据独立性,无法完全