数据库 - 授权与回收安全性

计算机系统安全性

为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。

 问题的提出
数据库的一大特点是数据可以共享
数据共享必然带来数据库的安全性问题
数据库系统中的数据共享不能是无条件的共享
例: 军事秘密、国家机密、新产品实验数据、
        市场需求分析、市场营销策略、销售计划、
        客户档案、医疗档案、银行储蓄数据

EC/TDI安全级别划分

B2以上的系统
还处于理论研究阶段
应用多限于一些特殊的部门,如军队等
美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准

CC

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

数据库安全性控制概述

非法使用数据库的情况
编写合法程序绕过DBMS及其授权机制
直接或编写应用程序执行非授权操作
通过多次合法查询数据库从中推导出一些保密数据

用户标识与鉴别

(Identification & Authentication)
系统提供的最外层安全保护措施
用户标识
口令
系统核对口令以鉴别用户身份
用户名和口令易被窃取
每个用户预先约定好一个计算过程或者函数

存取控制机制

组成
定义用户权限
合法权限检查
用户权限定义和合法权检查机制一起组成了 DBMS的安全子系统
常用存取控制方法
自主存取控制(Discretionary Access Control ,简称DAC)
C2级
灵活
强制存取控制(Mandatory Access Control,简称 MAC)
B1级
严格

自主存取控制方法

通过 SQL 的 GRANT 语句和 REVOKE 语句实现
用户权限组成
数据对象
操作类型
定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
定义存取权限称为授权

授权与回收

一、GRANT
GRANT语句的一般格式:
       GRANT <权限>[,<权限>]... 
       [ON <对象类型> <对象名>]
       TO <用户>[,<用户>]...
       [WITH GRANT OPTION];

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

GRANT

发出GRANT:
DBA
数据库对象创建者(即属主Owner)
拥有该权限的用户

按受权限的用户
一个或多个具体用户
PUBLIC(全体用户)
WITH GRANT OPTION子句:
指定:可以再授予
没有指定:不能传播

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

      GRANT   SELECT 
      ON   TABLE   Student 
      TO   U1;
[例2] 把对Student表和Course表的全部权限授予用户U2和U3

      GRANT ALL PRIVILIGES 
      ON TABLE Student, Course 
      TO U2, U3;
[例3] 把对表SC的查询权限授予所有用户

     GRANT SELECT 
     ON TABLE SC 
      TO PUBLIC;
[例4] 把查询Student表和修改学生学号的权限授给用户U4
  
        GRANT UPDATE(Sno), SELECT 
        ON TABLE Student 
        TO U4;

对属性列的授权时必须明确指出相应属性列名 
 [例5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

    GRANT INSERT 
    ON TABLE SC 
    TO U5
    WITH GRANT OPTION;
执行例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不能再传播此权限。

二、REVOKE
授予的权限可以由DBA或其他授权者用REVOKE语句收回


REVOKE语句的一般格式为:
      REVOKE <权限>[,<权限>]... 
      [ON <对象类型> <对象名>]
      FROM <用户>[,<用户>]...;
[例8] 把用户U4修改学生学号的权限收回

        REVOKE UPDATE(Sno)
        ON TABLE Student 
        FROM U4;
[例9] 收回所有用户对表SC的查询权限

        REVOKE SELECT 
        ON TABLE SC 
        FROM PUBLIC;

你可能感兴趣的:(【数据库原理】,数据库原理)