资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,/,*,数据库原理与应用,滁州学院计算机与信息工程学院,/,第,10,讲 数据库完整性与安全,教学目标:,要求熟练掌握数据库管理系统安全性保护的基本原理与方法,并能熟练运用,SQL,中的,GRANT,和,REVOKE,语句进行授权,/,目 录,数据库安全性,1,/,1,数据库安全性,安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。,数据库系统中大量数据集中存放,且为许多最终用户直接共享,安全性问题更为突出。,/,1.1,数据库安全的基本概念,数据库安全保护目标是确保只有授权用户才能访问数据库,未被授权的人员则无法接近数据。,安全措施是指计算机系统中用户直接或通过应用程序访问数据库所要经过的安全认证过程。,数据库安全认证过程如图,9-1,所示,/,1.1,数据库安全的基本概念,用户标识与鉴别,(identification&authentication),当用户访问数据库时,要先将其用户名,(user name),与密码,(password),提交给数据库管理系统进行认证;,只有在确定其身份合法后,才能进入数据库进行数据存取操作。,数据库安全保护,通过身份认证的用户,拥有了进入数据库的“凭证”;,用户在数据库中执行什么操作,需通过“存取控制”或视图进行权限分配。,/,1.1,数据库安全的基本概念,存取控制,:决定用户对数据库中的哪些对象进行操作、进行何种操作。,存取控制机制主要包括两部分:,定义用户权限及将用户权限登记到数据字典中;,合法权限检查:当用户发出操作请求后,,DBMS,查找数据字典并根据安全规则进行合法权限检查,若操作请求超出了定义的权限,系统将拒绝执行此操作。,视图,:通过为不同的用户定义不同的视图,达到限制用户访问范围的目的。,视图机制能隐藏用户无权存取的数据,从而自动地对数据库提供一定程度的安全保护;,视图的主要功能在于提供数据库的逻辑独立性,其安全性保护不太精细,往往不能达到应用系统的要求;,在实际应用中,通常将视图与存取控制机制结合起来使用,如先通过视图屏蔽一部分保密数据,然后进一步定义存取权限。,/,1.1,数据库安全的基本概念,审计,:是一种监视措施,用于跟踪并记录有关数据的访问活动。,审计追踪把用户对数据库的所有操作自动记录下来,存放在审计日志,(audit log),中;,审计日志的内容一般包括:,操作类型,(,如修改、查询、删除,),;,操作终端标识与操作者标识;,操作日期和时间;,操作所涉及到的相关数据,(,如基本表、视图、记录、属性,),;,数据库的前映像,(,即修改前的值,),和后映像,(,即修改后的值,),。,利用这些信息,可找出非法存取数据库的人、时间和内容等;,数据库管理系统往往将审计作为可选特征,允许操作者打开或关闭审计功能。,/,1.1,数据库安全的基本概念,操作系统安全保护,通过操作系统提供的安全措施来保证数据库的安全性,数据密码存储,访问控制和存取控制可将用户的应用系统访问范围最小化和数据对象操作权限最低化,但对一些敏感数据进行,“,加密存储”也是系统提供的安全策略;,数据加密,(data encryption),:防止数据库中数据存储和传输失密的有效手段;,加密的基本思想,:先根据一定的算法将原始数据,(,即明文,plaintext),加密为不可直接识别的格式,(,即密文,ciphertext,),,然后数据以密文的方式存储和传输。,/,1.2,安全标准,最有影响的标准为,TCSEC,(,Trusted Computer System Evaluation Criteria,,,美国国防部标准,,,1985,年)和,CC,(,Common Criteria for IT Security Evaluation,,,ISO,标准,,,1999,年)。,TCSEC,将系统划分为组共七个级别,依次为,D,C(C1,、,C2),B(B1,、,B2,、,B3),和,A(A1),:,D,:最低级,,DOS,属于该级别,几乎没有专门的安全机制;,C1,:初级的自主安全保护。将用户和数据分离,,实现自主存取控制,,,限制用户权限的传播,;,C2,:安全产品的最低档,,提供受控的存取保护,,,实施审计和资源隔离,:,如,Windows 2000,、,Oracle10g,、,SQL Server 2000,等;,在,SQL,中,通过授权语句,GRANT,和,REVOKE,来实现。,/,1.2,安全标准,B1,:标记安全保护。对数据加以标记,对主体和客体,实施强制存取控制:,这类产品一般加上安全或信任字样,如,Trusted Oracle7,;,该标准的核心是强制存取控制。,B2,:隐蔽通道和形式化,适合于网络工作方式,,目前国内外尚无符合该标准的数据库系统,。,B3,:访问监控器,适合于网络工作方式,,目前国内外尚无符合该标准的数据库系统,。,A1,:验证设计,较高的形式化要求,,仅仅是一种理想化的等级,目前没有相应的系统,。,国际标准化组织提出的,CC,文本由三部分组成:,简介及一般模型,、,安全功能要求,、,安全保证要求,。,我国于,1999,年颁布了国家标准,其标准与,TCSEC,标准相似。,/,1.3 SQL,存取控制机制,SQL,支持,受控的存取保护,:,在,自主存取控制,中,用户对不同的数据对象有不同的存取权限;,不同的用户对同一对象有不同的权限;,用户可将其拥有的存取权限转授给其他用户。,自主存取控制,通过,SQL,的,GRANT,和,REVOKE,语句实现。,用户权限,:是指用户可以在哪些数据对象上进行哪些类型的操作。它由两个要素组成:,数据对象,和,操作类型,。,定义存取权限称为,授权,(authorization),;,授权粒度可以精细到字段级,也可以粗到关系级;,授权粒度越细,授权子系统就越灵活,但是系统的开销也会相应地增大。,/,1.3 SQL,存取控制机制,衡量授权子系统的尺度,授权是否与数据值有关:,上面的授权是独立于数据值的,即用户能否对某类数据对象执行某种操作与数据值无关,完全由数据名决定;,若授权依赖于数据对象的内容,则称为是,与数据值有关的授权。,授权是否与时间和地点有关:,有的系统允许存取谓词中引用系统变量,如一天中的某个时刻,某台终端设备号;,用户只能在某台终端、某段时间内存取有关数据。,自主存取控制:用户可自由地决定将数据的存取权限授予何人,决定是否将“授权”的权限授予别人。,这种授权机制仍可能存在数据的“无意泄露”,。,/,1.3 SQL,存取控制机制,授权分为,数据库级,、,表级,和,列级,权限。,在,SQL Server,中权限只能由担任不同角色的用户来分配;,不同类型的用户有不同的等级;,下图给出了授权等级图。,/,1.3 SQL,存取控制机制,GRANT,和,REVOKE,语句向用户授予或收回对数据的操作权限。,对,数据库模式的授权,则由,DBA,在创建用户时实现。,创建用户,的语法如下:,CREATE USER,WITH DBA|RESOURCE|CONNECT,该语法在,SQL Server2000,中不支持;,在,SQL Server2000,中使用,系统存储过程,sp_addlogin,和,sp_adduser,实现,详见实验教材。,/,1.3 SQL,存取控制机制,权限的授予与收回,GRANT,和,REVOKE,有两种权限:,目标权限,和,命令权限,。,命令权限,的授予与收回,主要指,DDL,操作权限,语法分别为:,GRANT,all|,TO,public|,REVOKE,all|,FROM,public|,可以是,create database,、,create default,、,create function,、,create procedure,、,create rule,、,create table,、,create view,、,create index,、,backup database,和,backup log,等;,一次可授多种权限,授多种权限时,,权限之间用逗号分隔,;,如果具有创建对象的,create,权限,则自动具有其创建对象的修改权限,alter,和删除权限,drop,;,/,1.3 SQL,存取控制机制,对于基本表,自动具有在所创建表上创建、删除和修改触发器的权限;,修改,alter,和删除权限,drop,不额外授权;,all,:表示上述所有权限;,public,:表示所有的用户;,:指定的用户名列表。如果将某组权限同时授予多个用户,则用户名之间用逗号分隔。,例,9.1,将创建表和视图的权限授予,user,01,和,user,02,用户:,GRANT,create table,create view,TO,user,01,user,02,例,9.2,从,user,02,收回创建视图的权限:,REVOKE,create view,FROM,user,02,/,1.3 SQL,存取控制机制,目标权限,的授予和收回,主要指,DML,操作权限,语法分别为:,GRANT,all|,ON,(),TO,public|,WITH GRANT OPTION,REVOKE,all|,ON,(),FROM,public|,CASCADE,|,RESTRICT,可以是,update,、,select,、,insert,、,delete,、,excute,和,all,excute,针对,存储过程,授予执行权限;,update,、,select,、,insert,、,delete,针对,基本表,和,视图,授权;,all,表示所有的权限。,对象,的,创建者,自动拥有该对象的插入、删除、更新和查询操作权限;,过程,的,创建者,自动拥有所创建过程的执行权限;,/,1.3 SQL,存取控制机制,CASCADE,:级联收回;,RESTRICT,:缺省值,若转赋了权限,则不能收回;,WITH GRANT OPTION,:允许将指定对象上的,目标权限,授予其它安全帐户。,不允许循环授权,即不允许将得到的权限授予其祖先,如下图所示:,/,1.3 SQL,存取控制机制,例,9.3,将存储过程,proSearchBySno,的执行权限授予用户,u,1,、,u,2,和,u,3,:,GRANT,excute,ON,proSearchBySno,TO,u,1,u,2,u,3,例,9.4,将对班级表,Class,的查询、插入权限授予用户,u,1,,且用户,u,1,可以转授其所获得的权限给其它用户:,GRANT,select,insert,ON,Class,TO,u,1,WITH GRANT OPTION,例,9.5,将对学生表的性别、出生日期的查询和修改权限授予用户,u,3,、,u,4,和,u,5,,且不可以转授权限:,GRANT,select,update,ON,Student(sex,birthday),TO,u,3,u,4,u,5,如果是对,列,授予权限,命令项可以包括,select,或,update,或两者组合;,若使用了,select*,,则必须对表的所有列赋予,select,权限。,/,1.3 SQL,存取控制机制,例,9.6,将表,Score,的若干权限分别授予用户,u,1,、,u,2,、,u,3,、,u,4,、,u,5,和,u,6,。,将表,Score,的所有权限授予用户,u,1,,且可以转授权限,GRANT,all,ON,Score,TO,u,1,WITH GRANT OPTION,用户,u,1,将表,Score,的所有权限授予用户,u,2,,且可以转授权限,GRANT,all,ON,Score,TO,u,2,WITH GRANT OPTION,用户,u,2,将表,Score,的查询和插入权限授予用户,u,5,,且不可以转授,GRANT,select,insert,ON,Score,TO,u,5,用户,u,2,将表,Score,的
展开阅读全文