数据库特点之一是DBMS提供统一的数据保护功能来保证数据的安全可靠和正确有效,数据库的数据保护主要包括数据的安全性和数据完整性。
问题的提出:
数据库的一大特点是数据可以共享,数据共享必然带来数据库的安全性问题,因为数据库中的数据不能是无条件的共享,例如,军事机密、、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据等。
什么是数据库的安全性?
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏(p130)。数据库的安全性和计算机系统的安全性是紧密联系的。 4.1 计算机安全性概述
由于数据库的安全性和计算机系统的安全性是紧密联系的,因此在讨论数据库的安全性之前先讨论计算机系统安全性。 4.1.1 计算机系统的三类安全性问题
计算机系统安全性是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。
特别是Internet技术的发展,计算机安全性问题越来越重要。
计算机安全不仅涉及到计算机系统本身的技术问题、管理问题,还涉及法学、犯罪学、心理学等问题。其内容包括多方面。概括起来,计算机系统的安全性问题分为三大类,即技术安全类、管理安全类和法律类。
技术安全是指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全操作,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内数据不增加、不丢失、不泄露。
管理安全是指由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题。
法律是指部门建立的有关计算机犯罪、数据安全保密的法律道德准则和法规、法令。
我们只讨论技术安全。 4.1.2 安全标准简介
随着计算机技术特别是Internet技术的发展,对各种计算机系统安全性要求越来越高。因此要建立一套可信的安全标准,才能规范和指导计算机系统的安全问题。 4.2 数据库安全性控制
计算机系统中,数据库安全措施是一级一级层层设置,如下图所示:
OS DBMS 数据库 数据 数据库安全性控制的常用方法: 用户标识和鉴别 存取控制 视图机制 审计 数据加密
4.2.1 用户标识与鉴别(Identification & Authentication)
用户标识和鉴别是系统提供的最外层安全保护措施,其方法是由系统提供一定的方式让
用户标识自己的名字或身份。主要手段是用户标识和口令。
用户登录操作系统需要用户标识和口令。 用户登录DBMS需要用户标识和口令。 4.2.2 存取控制
数据库安全性所关心的主要是DBMS的存取控制机制。只有授权用户才能访问他权限范围内的数据。
存取控制机制主要包括两部分内容:
定义用户权限 一个用户应该具有何种权限是一个管理问题和问题而不是技
术问题,DBMS要有保证这些决定的执行功能。
合法权限检查 对发出存取数据请求的用户作合法权限检查。 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。
主要有两类存取控制方法:自主存取控制(目前大型DBMS一般都支持的C2级中的)和强制存取控制(部分DBMS支持的B1级中的)。 1 自主存取控制(DAC)方法
在自主存取控制方法中,用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥用的存取权转授给其他用户。
大部分DBMS都支持这种方法。SQL通过GRANT语句和REVOKE语句来实现。 1.1 授权(Authorization)与回收
用户权限是由两个要素组成:数据库对象和操作类型。定义一个用户的存取权限就是要定义这个用户可以在哪些数据库对象上进行哪些操作。定义存取权限称为授权。取消存取权限称为回收。
(1)授权
在SQL中用GRANT语句实现将某些权限授予某个用户。DBA、数据库对象创建者或已经拥有该权限的用户均可授权。
一般格式:
GRANT <权限>[,<权限>]...
ON <对象类型> <对象名>[,ON <对象类型> <对象名>]... TO <用户>[,<用户>]... [WITH GRANT OPTION]; 说明:
功能是将对数据库对象的指定操作权限授予用户。
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; (2)回收权限
授予的权限可以由DBA或授权者用REVOKE语句收回。 一般格式:
REVOKE <权限>[,<权限>]...
<对象类型> <对象名>[,ON <对象类型> <对象名>]... FROM <用户>[,<用户>]...[CASCADE|RESTRICT]; 说明:
CASCADE 级联回收权限
RESTRICT ,如果该用户把权限授予其他用户,则不允许回收权限。 例8:把用户U4修改学生学号的权限收回。 REVOKE UPDATE(Sno) ON TABLE Student FROM U4;
例10:把用户U5对SC表的INSERT权限收回。 REVOKE INSERT ON TABLE SC
FROM U5 CASCADE;
(3)创建数据库模式的权限
GRANT和REVOKE语句向用户授予或收回对数据的操作权限。对数据库模式的授权则由DBA在创建用户时实现。CREATE USER语句的一般格式:
CREATE USER [WITH][DBA | RESOURCE | CONNECT]; 说明: 只有系统的超级用户才有权创建一个新的数据库用户 新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA 拥用CONNECT权限的用户只能登录数据库 拥用RESOURCE权限的用户能创建基本表和视图,成为所创建对象的属主。 拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建 基本表和视图等;DBA拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户。 1.2 数据库角色 数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限或以简化授权过程。 (1)角色的创建 CREATE ROLE <角色名> (2)给角色授权 GRANT <权限>[,<权限>]„ ON <对象类型>对象名 TO <角色>[,<角色>]„ (3)将一个角色授予其他的角色或用户 GRANT <角色1>[,<角色2>]„TO <角色3>[,<用户1>]„ [WITH ADMIN OPTION]//可以传播权限 (4)角色权限的收回 REVOKE <权限>[,<权限>]„ON <对象类型> <对象名> FROM <角色>[,<角色>]„ (5)例:(p143) 2 强制存取控制(MAC)方法 (1)自主存取控制的缺点 自主存取控制是通过授权机制有效地控制对敏感数据的存取。由于用户对数据的存取权限是“自主”的,用户可以自由决定将数据的存取权限授予何人。在这种机制下,仍可能存在数据的“无意泄露”。造成这一问题的根本原因是这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。要解决这一问题,需要对系统控制下的所有主客体实施强制存取控制策略。 4.3 视图机制 4.4 审计(Audit) 4.5 数据加密 4.6 统计数据库安全性 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务