第九章 数据库安全性与完整性 《数据库系统原理及应用》PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.1.1 数据库安全概述
数据库安全保护目标是确保只有授权用户才能访问 数据库,未被授权的人员则无法接近数据。
安全措施是指计算机系统中用户直接或通过应用程 序访问数据库所要经过的安全认证过程。
数据库安全认证过程如图9-1所示
9.1.1 数据库安全概述
用户标识与鉴别(identification & authentication)
在自主存取控制中,用户对不同的数据对象有不同的存取权限; 不同的用户对同一对象有不同的权限; 用户可将其拥有的存取权限转授给其他用户。
自主存取控制通过SQL的GRANT和REVOKE语句实现。 用户权限:是指用户可以在哪些数据对象上进行哪些类型
的操作。它由两个要素组成:数据对象和操作类型。
数据库安全的形式化
➢由于数据库的安全在整个系统中的重要性,必须建立一套有 效的形式化体系用于保证其自身正确性,发现并填补安全漏 洞,防止隐蔽通道,为数据库安全的研究提供理论依据;
➢目前数据库安全的形式化已成为高级数据库安全的必要条件.
访问监控器
➢访问监视器是一个独立的物理机构,由一定的软件和硬件共 同组成,它能够监视主体对客体的全部访问活动。
➢<command_list>可以是create database、create default、 create function、create procedure、create rule、create table、create view、create index、backup database和 backup log等;
要求熟练掌握DBMS完整性保护措施,并能熟练运用SQL 中的DDL语句进行完整性约束定义。
9.1 数据库安全性
安全性问题不是数据库系统所独有的,所有计算机 系统都有这个问题。
数据库系统中大量数据集中存放,且为许多最终用 户直接共享,安全性问题更为源自出。9.1.1 数据库安全概述
9.1.2 SQL Server安全机制
系统管理员sa; 数据库所有者dbo; 目标所有者; 数据库操作者。
在SQL Server数据库中用户访问数据对象的流程如 图9-4所示。
9.1.2 SQL Server安全机制
用户访问数据库中的对象,必须首先在SQL Server中进 行注册,由sa使用系统存储过程sp_addlogin创建:
视图:通过为不同的用户定义不同的视图,达到限制用户访 问范围的目的。
➢视图机制能隐藏用户无权存取的数据,从而自动地对数据库提 供一定程度的安全保护;
➢视图的主要功能在于提供数据库的逻辑独立性,其安全性保护 不太精细,往往不能达到应用系统的要求;
➢在实际应用中,通常将视图与存取控制机制结合起来使用,如 先通过视图屏蔽一部分保密数据,然后进一步定义存取权限。
➢利用这些信息,可找出非法存取数据库的人、时间和内容等; ➢数据库管理系统往往将审计作为可选特征,允许操作者打开或
关闭审计功能。
9.1.1 数据库安全概述
操作系统安全保护
通过操作系统提供的安全措施来保证数据库的安全性
数据密码存储
访问控制和存取控制可将用户的应用系统访问范围最小化 和数据对象操作权限最低化,但对一些敏感数据进行“加密 存储”也是系统提供的安全策略;
安全标准
最有影响的标准为TCSEC(Trusted Computer System Evaluation Criteria,美国国防部标准,1985年)和 CC(Common Criteria for IT Security Evaluation,ISO 标准,1999年)。
TCSEC将系统划分为4组共七个级别,依次为D,C(C1, C2),B(B1, B2, B3)和A(A1):
➢MAC对比主体和客体的敏感度标记,确定主体是否能够存取 客体。
安全标准
➢当某一用户(或主体)注册进入系统时,他对任何客体的存取必须遵循 如下规则:
✓ 规则1:仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应 的客体;
✓ 规则2:仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。
些客体。
安全标准
自主存取控制(Discretionary Access Control, 简记为DAC)
➢DAC是一种基于存取矩阵的存取控制模型; ➢此模型由三种元素组成,即主体、客体和存取操作。三种元
素构成一个矩阵,列表示主体,行表示客体,矩阵中的元素 表示存取操作,如读(R)、写(W)、删除(D)和修改(U)操作, 如下图所示;
➢强制存取控制是对数据本身进行密级标记,标记与数据是不可分的整 体;只有符合密级标记要求的用户才可操纵数据,从而提供更高级别 的安全性。
安全标准
隐蔽通道
➢在主体访问客体时,一般通过正常路径访问;但在网络数据 流中利用隐蔽通道进行非法通信已成为威胁网络数据库安全 的一种重要手段;
➢在数据库安全中,一定要寻找和防止隐蔽通道的出现,一旦 发现要采取措施加以阻塞。
GRANT和REVOKE有两种权限:目标权限和命令权限。 命令权限的授予与收回
➢主要指DDL操作权限,语法分别为:
GRANT {all | <command_list>} TO {public | <username_list>}
REVOKE {all | <command_list>} FROM {public | <username_list>}
9.1.1 数据库安全概述
审计:是一种监视措施,用于跟踪并记录有关数据的访 问活动。
➢审计追踪把用户对数据库的所有操作自动记录下来,存放在审 计日志(audit log)中;
➢审计日志的内容一般包括:
✓ 操作类型(如修改、查询、删除); ✓ 操作终端标识与操作者标识; ✓ 操作日期和时间; ✓ 操作所涉及到的相关数据(如基本表、视图、记录、属性); ✓ 数据库的前映像(即修改前的值)和后映像(即修改后的值)。
➢若授权依赖于数据对象的内容,则称为是与数据值有关的 授权。
授权是否与时间和地点有关:
➢有的系统允许存取谓词中引用系统变量,如一天中的某个 时刻,某台终端设备号;
➢用户只能在某台终端、某段时间内存取有关数据。
自主存取控制:用户可自由地决定将数据的存取权限授 予何人,决定是否将“授权”的权限授予别人。
➢规则(1)的意义是明显的,在某些系统中,规则(2)有些差别:
✓ 仅当主体的许可证级别小于或等于客体的密级时,才能写相应的客体; ✓ 即用户可以为写数据对象赋予高于自己的许可证级别的密级,这样一旦数据被写
入,该用户自己也不能再读该数据对象了。
➢两种规则的共同点在于:
✓ 禁止拥有高许可证级别的主体更新低密级的数据对象,从而防止敏感数据泄漏。
当用户访问数据库时,要先将其用户名(user name)与密 码(password)提交给数据库管理系统进行认证;
只有在确定其身份合法后,才能进入数据库进行数据存 取操作。
数据库安全保护
通过身份认证的用户,拥有了进入数据库的“凭证”; 用户在数据库中执行什么操作,需通过“存取控制”或
视图进行权限分配。
安全标准
B1:标记安全保护。对数据加以标记,对主体和客体实施 强制存取控制:
➢这类产品一般加上安全或信任字样,如Trusted Oracle7; ➢该标准的核心是强制存取控制。
B2:隐蔽通道和形式化,适合于网络工作方式,目前国内 外尚无符合该标准的数据库系统。
B3:访问监控器,适合于网络工作方式,目前国内外尚无 符合该标准的数据库系统。
数据库的安全与计算机系统的安全是紧密相关的,数据 库系统的安全标准与计算机系统的安全标准是一致的。
基本概念:
主体和客体
➢主体:指数据库的访问者,包括用户、进程和线程等; ➢客体:指数据库中的数据和载体,如基本表、视图、存储
过程和数据文件等; ➢主体与客体是独立的,一个主体可以在一定条件下访问某
9.1.2 SQL Server安全机制
其次,建立的账户不能访问用户数据库,要访问用 户数据库,必须为数据库添加用户,使用系统存储 过程sp_adduser:
9.1.2 SQL Server安全机制
数据库各对象之间的关系如图9-5所示:
9.1.2 SQL Server安全机制
权限的授予与收回
D:最低级,DOS属于该级别,几乎没有专门的安全机制;
C1:初级的自主安全保护。将用户和数据分离,实现自主 存取控制,限制用户权限的传播;
C2:安全产品的最低档,提供受控的存取保护,实施审计 和资源隔离:
➢如Windows 2000、Oracle10g、SQL Server 2000等;
➢在SQL中,通过授权语句GRANT和REVOKE来实现。
对数据库模式的授权则由DBA在创建用户时实现。 SQL Server用户:
系统管理员sa; 数据库所有者dbo; 目标所有者; 数据库操作者。
9.1.2 SQL Server安全机制
GRANT和REVOKE语句向用户授予或收回对数据 的操作权限。
对数据库模式的授权则由DBA在创建用户时实现。 SQL Server用户:
这种授权机制仍可能存在数据的“无意泄露”。
9.1.2 SQL Server安全机制
授权分为数据库级、表级和列级权限。
在SQL Server中权限只能由担任不同角色的用户来分配; 不同类型的用户有不同的等级; 下图给出了授权等级图。
9.1.2 SQL Server安全机制
GRANT和REVOKE语句向用户授予或收回对数据 的操作权限。
➢在DAC中,主体按存取矩阵的要求访问客体,存取矩阵中的 元素可通过授权方式进行修改,Unix操作系统属于该方式。
安全标准
强制存取控制(Mandatory Access Control, 简记为MAC)
➢MAC不是用户能直接感知或进行控制的; ➢MAC适用于对数据有严格而固定密级分类的部门,如军事部
定义存取权限称为授权(authorization); 授权粒度可以精细到字段级,也可以粗到关系级; 授权粒度越细,授权子系统就越灵活,但是系统的开销也会相应
地增大。
9.1.2 SQL Server安全机制
衡量授权子系统的尺度
授权是否与数据值有关:
➢上面的授权是独立于数据值的,即用户能否对某类数据对 象执行某种操作与数据值无关,完全由数据名决定;
第9章 数据库安全性与完整性
数据库的安全性:保护数据库以防止不合法使用所造 成的数据泄密、更改或破坏。
数据库的完整性:防止数据库中存在不符合语义的数 据,其防范对象是不合语义的、不正确的数据。
主要教学目标如下:
要求熟练掌握DBMS安全性保护的基本原理与方法,并能 熟练运用SQL中的GRANT和REVOKE语句进行授权;
A1:验证设计,较高的形式化要求,仅仅是一种理想化的 等级,目前没有相应的系统。
国际标准化组织提出的CC文本由三部分组成:简介及一 般模型、安全功能要求、安全保证要求。
我国于1999年颁布了国家标准,其标准与TCSEC标准相 似。
9.1.2 SQL Server安全机制
SQL支持受控的存取保护:
数据加密(data encryption):防止数据库中数据存储和传输 失密的有效手段;
加密的基本思想:先根据一定的算法将原始数据(即明文, plaintext)加密为不可直接识别的格式(即密文, ciphertext),
然后数据以密文的方式存储和传输。
安全标准
美国、欧洲和国际标准化组织都对计算机系统制定了相 应的安全标准。
9.1.1 数据库安全概述
存取控制:决定用户对数据库中的哪些对象进行操作,进行 何种操作。存取控制机制主要包括两部分:
➢定义用户权限及将用户权限登记到数据字典中; ➢合法权限检查:当用户发出操作请求后,DBMS查找数据字典
并根据安全规则进行合法权限检查,若操作请求超出了定义的 权限,系统将拒绝执行此操作。
门或政府部门;
➢对于主体和客体,DBMS为每个实例(值)指派了一个敏感度标 记(label);
➢敏感度标记被分成若干级别,例如绝密(top secret)、机密 (secret)、可信(confidential)和公开(public)等;
➢主体的敏感度标记称为许可证级别(clearance level),客体的 敏感度标记称为密级(classification level);