4.2 数据库安全性控制(1)

4.2 数据库安全性控制

♥  计算机系统中,安全措施是一级一级层层设置的

计算机系统的安全模型
    ◾ 系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统
    ◾ 数据库管理系统进行存取控制,只允许用户执行合法操作
    ◾ 操作系统有自己的保护措施
    ◾ 数据以密码形式存储到数据库
♥  数据库安全性控制的常用方法
    ◾ 用户身份鉴别
    ◾ 存取控制
    ◾ 视图
    ◾ 审计
    ◾ 数据加密
数据库管理系统安全性控制模型
♥  数据库安全性控制

4.2.1 用户身份鉴别
4.2.2 存取控制
4.2.3 自主存取控制方法
4.2.4 授权:授予与回收
4.2.5 数据库角色
4.2.6 强制存取控制方法

♥  用户身份鉴别(Identification & Authentication)
    ◾ 系统提供的最外层安全保护措施
    ◾ 用户标识:由用户名和用户标识号组成(用户标识号在系统整个生命周期内唯一)
♥  用户身份鉴别的方法

  1. 静态口令鉴别
        ◾ 静态口令一般由用户自己设定,这些口令是静态不变的
  2. 动态口令鉴别
        ◾ 口令是动态变化的,每次鉴别时均需使用动态产生的口令登录数据库管理系统,即采用一次一密的方法
  3. 智能卡鉴别
        ◾ 智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能
  4. 生物特征鉴别
        ◾ 通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等

4.2.1 用户身份鉴别
4.2.2 存取控制
4.2.3 自主存取控制方法
4.2.4 授权:授予与回收
4.2.5 数据库角色
4.2.6 强制存取控制方法

♥  存取控制机制组成
    ◾ 定义用户权限,并将用户权限等级到数据字典中
        ● 用户对某一数据对象的操作权利称为权限
        ● DBMS提供适当的语言来定义用户权限,存放在数据字典中,称作安全规则或授权规则
    ◾ 合法权限检查
        ● 用户发出存取数据库操作请求
        ● DBMS查找数据字典,进行合法权限检查

用户权限定义和合法权检查机制一起组成了DBMS的存取种植子系统

4.2.1 用户身份鉴别
4.2.2 存取控制
4.2.3 自主存取控制方法
4.2.4 授权:授予与回收
4.2.5 数据库角色
4.2.6 强制存取控制方法

♥  自主存取控制(Discretionary Access Control,简称DAC)
    ◾ 用户对不同的数据对象有不同的存取权限
    ◾ 不同的用户对同一对象也有不同的权限
    ◾ 用户还可将其拥有的权限转授给其他用户
♥  通过SQL的GRANT语句和REVOKE语句实现用户权限的定义和回收
♥  关系数据库系统中存取控制对象

对象类型对象操作类型
数据库模式模式create schema
数据库模式基本表create table, alter table
数据库模式视图create view
数据库模式索引create index
数据基本表和视图select,insert,update,delete,references,all privileges
数据属性列select,insert,update,references,all privileges

4.2.1 用户身份鉴别
4.2.2 存取控制
4.2.3 自主存取控制方法
4.2.4 授权:授予与回收
4.2.5 数据库角色
4.2.6 强制存取控制方法

♥  1.权限授予:GRANT
♥  GRANT语句的一般格式

grant <权限>[,<权限>]...
on <对象类型><对象名>[,<对象类型><对象名>]...
to <用户>[,<用户>]...
[with grant option] 	/* 指定该子句可以将权限转授给其他用户;若没有指定,则不能传播权限 */

♥  语义:将对指定操作对象的指定的操作权限授予给自定的用户
♥  不能循环授权
♥  发出grant
    ◾ 数据库管理员
    ◾ 数据库对象创建者(即属主Owner)
    ◾ 拥有 改权限的用户
♥  接受权限的用户
    ◾ 一个/多个具体用户
    ◾ public(即全体用户)
[例 4.1] 把查询Student表权限授权给用户U1

-- 将一种权限授予给一个用户
grant select
on table Student
to U1;

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

-- 一次向多个用户传播多种同类对象的权限
grant all privileges
on table Student,Course
to U2, U3;

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

grant select
on table SC
to public;

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

-- 对属性列的授权时必须明确指出相对应的属性列名
grant select,update(Sno)
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权限,还可以传播此权限

grant insert
on table SC
to U6;

U6不可再将此权限授予传播

♥  2.权限挥手:REVOKE
♥  授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回
♥  REVOKE语句的一般格式

revoke <权限>[,<权限>]...
on <对象类型><对象名>[,<对象类型><对象名>]...
from <用户>[,<用户>]...[CASCADE | CASCADE ];

*CASCADE :级联回收 CASCADE:受限回收 *

[例 4.6] 把U4用户修改学生学号的权限收回

revoke update(Sno)
on table Student
from U4;

[例 4.7] 回收所有用户对表SC的查询权限

revoke select
on table SC
from public;

[例 4.8] 把用户U5对SC表的insert权限收回

revoke insert
on table SC
from U5 CASCADE;

小结
♥  数据库安全性控制的常用方法
    ◾ 用户身份鉴别
    ◾ 存取控制
        ● 自主存取控制
        ● 强制存取控制
    ◾ 视图
    ◾ 审计
    ◾ 加密

上一篇:4.1 数据库安全性概述
目    录:《数据库系统概论》
下一篇:4.2 数据库安全性控制(2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值