第四章 数据库安全性
数据库安全性(续) 数据库安全性(
什么是数据库的安全性
数据库的安全性是指保护数据库,防止因用户非法 使用数据库造成数据泄露、更改或破坏。
什么是数据的保密
数据保密是指用户合法地访问到机密数据后能否对 这些数据保密。 通过制订法律道德准则和政策法规来保证。
目录
计算机安全性概论 数据库安全性控制 视图机制 审计 数据加密 统计数据库安全性
数据库安全性控制概述(续) 数据库安全性控制概述(
计算机系统中的安全模型 安全性控制层次
高 低
应用
OS
DBMS
DB
用户标识 方法: 方法: 和鉴定
操作系统 安全保护
存取控制 审计、 审计、视图
数据密码存储
数据库安全性控制的常用方法
用户标识和鉴定 存取控制 视图 审计 密码存储
用户标识与鉴别
用户标识与鉴别(Identification 用户标识与鉴别(Identification & Authentication)
授权与回收
授命令
grant <表级权限> on {表名 | 视图名} to {用户 [,用户]… | public} [with grant option] 表级权限包括:select, update, insert, delete, index, alter, drop, resource 等 以 及 它 们 的 总 和 all , 其 中 对 select , update可指定列名 with grant option表示获得权限的用户可以把权限再授予 其它用户 发出该grant语句的可以是DBA,也可是此表的创建者,也 可是拥有该权限用户
非法使用数据库的情况
用户编写一段合法的程序绕过DBMS及其授权机制,通过操 作系统直接存取、修改或备份数据库中的数据; 直接或编写应用程序执行非授权操作; 通过多次合法查询数据库从中推导出一些保密数据 例:某数据库应用系统禁止查询单个人的工资,但允许 查任意一组人的平均工资。用户甲想了解张三的工资, 于是他: 首先查询包括张三在内的一组人的平均工资 然后查用自己替换张三后这组人的平均工资 从而推导出张三的工资 破坏安全性的行为可能是无意的,故意的,恶意的。
数据库角色
角色是一组相关权限的结合, 角色是一组相关权限的结合,即将多个不同的 权限集合在一起就形成了角色
用户
用户 角色
权限
权限
数据库角色(续) 数据库角色(
数据库角色(续) 数据库角色(
角色的创建
Create role <rolename>
示例
Create role R1 Grant select,update,insert on Student to R1 Grant R1 to zheng,zhang,wang with admin option Revoke select On Student from R1 Revoke R1 from zheng
授权与回收( 授权与回收(例)
例1:把查询Student表的权限授给用户U1 把查询Student表的权限授给用户U
Grant select on Student to U1
例 2: 把对 Student表和 Course表的全部操作权 把对Student 表和Course 表的全部操作权 限授予所有用户
Grant insert on Student to U3 with grant option
授权与回收( 授权与回收(续)
回收权限
revoke <表级权限> on {表名 | 视图名} from {用户 [,用户]… | public}[cascade | restrict] 收回权限用cascade时,则若该用户已将权限授予其它用户, 则也一并收回。
管理安全类
软硬件意外故障、场地的意外事故、管理不善导致 的计算机设备和数据介质的物理破坏、丢失等安全 问题
政策法律类
政府部门建立的有关计算机犯罪、数据安全保密的 法律道德准则和政策法规、法令
数据库安全性控制
数据库安全性控制概述 用户标识与鉴别 存取控制 自主存取控制方法 强制存取控制方法
数据库安全性控制概述
Create user <username> [with][DBA|resource|connect]
说明:
只有系统的超级用户才有权创建新的用户 新建用户有三种权限:connect、resource和DBA
创建数据库模式的权限(续) 创建数据库模式的权限(
权限与可执行操作
创建用户命令中若没指定建新用户的权限,默认该用户拥 有connect权限。 不能创建新用户、不能创建模式、不能创建基本表; 只能登录数据库 Resource权限 能创建基本表和视图 不能创建模式,也不能创建新的用户 DBA权限的用户是系统中的超级用户, 拥有一切权限,还可以把这些权限授予一般用户。
管理问题
安全管理 安全评价 安全产品
心理学
计算机安全性概论( 计算机安全性概论(续)
三类计算机系统安全性问题
技术安全类
指计算机系统中采用具有一定安全性的硬件、软件 来实现对计算机系统及其所存数据的安全保护,当 计算机系统受到无意或恶意的攻击时仍能保证系统 正常运行,保证系统内的数据不增加、不丢失、不 泄露。
例
Revoke update(Sno) on Student from U2; Revoke insert on Student from U3 cascade;
创建数据库模式的权限
数据的操作授权与数据库模式授权的区别 数据的操作授权与数据库模式授权的区别
Grant和revoke语句用于向用户授予或收回对数据 的操作权限, 而对数据库模式的授权则由DBA在创建用户时实现 创建用户语句一般格式
一个数据对象被标以一定的密级
每一个用户也被授予某一个级别的许可证 对于任意一个对象,只有具有合法许可证的用户才可 以存取
自主存取控制方法
自主存取控制(DAC) 自主存取控制(DAC) 大型数据库几乎都支持自主存取控制 SQL标准也支持自主存取控制 存取权限定义 存取权限由两个要素组成 数据对象
数据本身—基本表中的数据、属性列上的数据 数据库模式—数据库schema、基本表table、视图 view、索引index
自主存取控制小结
自主存取控制小结
定义存取权限
用户
检查存取权限
DBMS
授权粒度
数据对象粒度:数据库、表、属性列、行
数据值粒度
授权粒度越细,授权子系统就越灵活,能够提供的安全 性就越完善。但另一方面,因数据字典变大变复杂,系 统定义与检查权限的开销也会相应地增大。
自主存取控制小结(续) 自主存取控制小结(
Grant all privileges on Student,Course to public
例3:把查询Student表和修改学生学号的权限授 把查询Student表和修改学生学号的权限授 给用户U 给用户U2
Grant update(Sno),select on student to U2
例4:把对表Student的insert权限授予U3用户, 把对表Student的insert权限授予U 用户, 并允许将此权限再授予其他用户
自主存取控制优缺点
优点
能够通过授权机制有效地控制其他用户对敏感数据的存 取
缺点
可能存在数据的“无意泄露” 原因:这种机制仅仅通过对数据的存取权限来进行安全 控制,而数据本身并无安全性标记。 解决:对系统控制下的所有主客体实施强制存取控制策 略
强制存取控制方法
什么是强制存取控制
强制存取控制(MAC)是指系统为保证更高程度的安全性,按 照安全策略的要求,所采取的强制存取检查手段。 MAC适用于对数据有严格而固定密级分类的部门 军事部门 政府部门 在MAC中,DBMS所管理的全部实体被分为主体和客体两大 类 主体是系统中的活动实体 DBMS所管理的实际用户 代表用户的各进程 客体是系统中的被动实体,是受主体操纵的 文件、基表、索引、视图
系统提供的最外层安全保护措施
基本方法
系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户提供的身份标 识; 通过鉴定后才提供机器使用权。 用户标识和鉴定可以重复多次
用户名/ 用户名/口令
简单易行,容易被人窃取
存取控制
存取控制机制的功能
计算机安全性概论
什么是计算机系统安全性
为计算机系统建立和采取的各种安全保护措施,以 保护计算机系统中的硬件、软件及数据,防止其因 偶然或恶意的原因使系统遭到破坏,数据遭到更改 或泄露等。
计算机安全涉及问题
计算机系统本身的技术问题
计算机安全理论与策略 计算机安全技术
法学
计算机安全法律
犯罪学
计算机犯罪与侦察 安全监察
数据库安全性
问题的提出
数据库的一大特点是数据可以共享 数据共享必然带来数据库的安全性问题:因为数据 库系统中的数据共享不能是无条件的共享
例:军事秘密、国家机密、新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、 医疗档案、 银行储蓄数据
数据库中数据的共享是在DBMS统一的严格的控制 之下的共享,即只允许有合法使用权限的用户访问 允许他存取的数据 数据库系统的安全保护措施是否有效是数据库系统 主要的性能指标之一
强制存取控制方法( 强制存取控制方法(续)
强制存取控制规则
当某一用户(或某一主体)以标记label注册入系统时,系 统要求他对任何客体的存取必须遵循下面两条规则: 仅当主体的许可证级别大于或等于客体的密级时,该主 体才能读取相应的客体; 仅当主体的许可证级别等于客体的密级时,该主体才能 写相应的客体。