[精选]第4章数据库安全性_27059.pptx
第四章第四章 数据数据库安全性安全性n 问题的提出问题的提出n数据库的一大特点是数据可以共享,但数据共享必然带来数据库的一大特点是数据可以共享,但数据共享必然带来 数据库的安全性问题。数据库的安全性问题。n数据库系统中的数据共享不能是无条件的共享数据库系统中的数据共享不能是无条件的共享例:例:军事秘密、军事秘密、国家机密、国家机密、新产品实验数据、新产品实验数据、客户档案、客户档案、医疗档案、医疗档案、银行储蓄数据银行储蓄数据n数数据据库库中中数数据据的的共共享享是是在在DBMS统统一一的的严严格格的的控控制制之之下下的的共共享享,即即只只允允许许有有合合法法使使用用权权限限的的用用户户访访问问允允许许他他存存取取的的数据。数据。n数数据据库库系系统统的的安安全全保保护护措措施施是是否否有有效效是是数数据据库库系系统统主主要要的的性能指标之一。性能指标之一。第四章第四章 数据数据库安全性安全性4.1 计算机系统安全性概述计算机系统安全性概述4.2 数据库安全性控制数据库安全性控制4.3 数据库存取控制方法数据库存取控制方法4.4 视图机制视图机制4.5 审计审计4.6 统计数据数据库安全性安全性4.7 小结小结 4.1 计算机系算机系统安全性概述安全性概述n什么是数据库的安全性什么是数据库的安全性n数数据据库库的的安安全全性性是是指指保保护护数数据据库库,防防止止因因用用户户非非法法使使用用数数据据库库造造成成数数据据泄泄露露、更更改改或或破破坏坏。数数据据库库的的安安全全性性与与计计算算机机系系统安全性紧密相关。统安全性紧密相关。n什么是计算机系统安全性什么是计算机系统安全性n是指为计算机系统建立和采取的各种安全保护措施,以保护是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的计算机系统中的硬件硬件、软件软件及及数据数据,防止其因偶然或恶意的,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。原因使系统遭到破坏,数据遭到更改或泄露等。n计算机系统有三类安全性问题:技术安全类、管理安全类、计算机系统有三类安全性问题:技术安全类、管理安全类、政策法律类。政策法律类。计算机系算机系统的三的三类安全性安全性问题1)技术安全)技术安全指计算机系统中采用具有一定指计算机系统中采用具有一定安全性安全性的的硬件、软件硬件、软件来实现来实现对计对计算机系统及其所存数据的安全保护算机系统及其所存数据的安全保护,当计算机系统受到无意或,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。加、不丢失、不泄露。2)管理安全)管理安全指管理不善导致的软硬件意外故障、场地的意外事故、计算机指管理不善导致的软硬件意外故障、场地的意外事故、计算机设备和数据介质的物理破坏、丢失等安全问题。设备和数据介质的物理破坏、丢失等安全问题。3)政策法律类)政策法律类政府部门建立的有关计算机犯罪、数据安全保密的法律道德准政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。则和政策法规、法令。第四章第四章 数据数据库安全性安全性4.1 计算机系统安全性概述计算机系统安全性概述4.2 数据库安全性控制数据库安全性控制4.3 数据库存取控制方法数据库存取控制方法4.4 视图机制视图机制4.5 审计审计4.6 统计数据库安全性统计数据库安全性4.7 小结小结4.2 数据数据库安全性控制安全性控制一、数据库安全性控制概述一、数据库安全性控制概述二、用户标识与鉴别二、用户标识与鉴别三、存取控制三、存取控制一、一、数据数据库安全性控制概述安全性控制概述 应用应用DBMSOS DB 低低 高高安全性控制层次安全性控制层次用户标识用户标识和鉴定和鉴定 存取控制、存取控制、视图、审计视图、审计操作系统操作系统 安全保护安全保护 数据密码存储数据密码存储 n 计算机系统中的安全模型计算机系统中的安全模型数据数据库安全性控制概述(安全性控制概述(续)n数据库安全性控制的常用方法数据库安全性控制的常用方法n用户标识和鉴定用户标识和鉴定n存取控制存取控制n视图视图n审计审计n密码存储密码存储4.2 数据数据库安全性控制安全性控制一、数据库安全性控制概述二、用户标识与鉴别三、存取控制二、用二、用户标识与与鉴别n基本方法基本方法n系统提供一定的方式让用户标识自己的名字或身份,系统内系统提供一定的方式让用户标识自己的名字或身份,系统内 部记录着所有合法用户的标识;部记录着所有合法用户的标识;n每次用户要求进入系统时,由系统核对用户提供的身份标每次用户要求进入系统时,由系统核对用户提供的身份标 识,通过鉴定后才提供系统使用权。识,通过鉴定后才提供系统使用权。n用户标识和鉴定可以重复多次用户标识和鉴定可以重复多次n用户名用户名/口令口令简单易行,容易被人窃取简单易行,容易被人窃取n其他方式其他方式 每个用户预先约定好一个每个用户预先约定好一个计算过程计算过程或者或者函数,函数,系统提供一个系统提供一个 随机数,用户根据自己预先约定的计算过程或者函数进行计随机数,用户根据自己预先约定的计算过程或者函数进行计 算,系统根据用户计算结果是否正确鉴定用户身份。算,系统根据用户计算结果是否正确鉴定用户身份。4.2 数据数据库安全性控制安全性控制一、数据库安全性控制概述一、数据库安全性控制概述二、用户标识与鉴别二、用户标识与鉴别三、存取控制三、存取控制三、存取控制三、存取控制n存取控制机制的组成存取控制机制的组成 1)定义存取权限定义存取权限在数据库系统中,为了保证用户只能访问他有权存取的数在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。据,必须预先对每个用户定义存取权限。2)检查存取权限检查存取权限 对于通过鉴定获得上机权的用户(即合法用户),系统根据对于通过鉴定获得上机权的用户(即合法用户),系统根据 他的存取权限定义对他的各种操作请求进行控制,确保他只他的存取权限定义对他的各种操作请求进行控制,确保他只 执行合法操作。若用户的操作请求超出了定义的权限,系统执行合法操作。若用户的操作请求超出了定义的权限,系统 将拒绝执行此操作将拒绝执行此操作用户权限定义和合法权检查机制一起组成了用户权限定义和合法权检查机制一起组成了DBMS的安全子系统的安全子系统存取控制(存取控制(续)n常用的存取控制方法常用的存取控制方法1)自主存取控制自主存取控制(Discretionary Access Control,简称,简称DAC)同一用户对于不同的数据对象有不同的存取权限;不同的用户同一用户对于不同的数据对象有不同的存取权限;不同的用户对同一对象也有不同的权限;用户还可将其拥有的存取权限转对同一对象也有不同的权限;用户还可将其拥有的存取权限转授给其他用户。授给其他用户。2)强制存取控制)强制存取控制(Mandatory Access Control,简称,简称 MAC)每一个数据对象被标以一定的密级;每一个用户也被授予某一每一个数据对象被标以一定的密级;每一个用户也被授予某一个级别的许可证;对于任意一个对象,只有具有合法许可证的个级别的许可证;对于任意一个对象,只有具有合法许可证的用户才可以存取。用户才可以存取。DAC比较灵活,比较灵活,MAC比较严格。比较严格。第四章第四章 数据数据库安全性安全性4.1 计算机系统安全性概述计算机系统安全性概述4.2 数据库安全性控制数据库安全性控制4.3 数据库存取控制方法数据库存取控制方法4.4 视图机制视图机制4.5 审计审计4.6 统计数据库安全性统计数据库安全性4.7 小结小结一、用一、用户权限限用户权限由两个要素组成:数据对象和操作类型用户权限由两个要素组成:数据对象和操作类型关系数据库中用户的权限二、二、建立用建立用户建立用户分两步:建立用户分两步:1)建立服务器登录用户)建立服务器登录用户点击服务器(点击服务器(local)双击双击“安全性安全性”双击双击“登录登录”,按,按右键拉出菜单,选择右键拉出菜单,选择“新建登录新建登录”输入新用户名称;选输入新用户名称;选SQLServer身份验证,输入密码。点击身份验证,输入密码。点击“确定确定”退出。退出。2)数据库用户的建立)数据库用户的建立选定某数据库,点击展开选定某数据库,点击展开点击点击“用户用户”,按右键拉出菜单,按右键拉出菜单,选选“新建数据库用户新建数据库用户”,在服务器登录用户中选择登录名,用,在服务器登录用户中选择登录名,用户名和登录名一致。点击户名和登录名一致。点击“确定确定”退出。退出。三、授三、授权与回收与回收1 1、授授 权权n使用使用GRANTGRANT语句为用户语句为用户授权,其授权,其一般格式如下:一般格式如下:GRANT GRANT,.ON ON TO TO,.WITH GRANT OPTION;.WITH GRANT OPTION;n功能:将对指定操作对象的指定操作权限授予指定的用户。功能:将对指定操作对象的指定操作权限授予指定的用户。n带带WITH GRANT OPTIONWITH GRANT OPTION选项,获得某种权限的用户还可以把这选项,获得某种权限的用户还可以把这 种权限种权限再授予再授予别的用户。否则只能使用该权限,别的用户。否则只能使用该权限,不能传播不能传播该该 权限。权限。n由由DBADBA和表的建立者(即表的属主)发出命令和表的建立者(即表的属主)发出命令n基本表或视图的属主拥有对该表或视图的一切操作权限基本表或视图的属主拥有对该表或视图的一切操作权限例例题例例1 1 把查询把查询StudentStudent表的权限授给用户表的权限授给用户U1U1 GRANT SELECT ON Student TO GRANT SELECT ON Student TO U1U1;例例2 2 把对把对CourseCourse表的全部权限授予用户表的全部权限授予用户U2U2和和U3(P127)U3(P127)GRANT GRANT ALLALL ON Course TO U2,U3;ON Course TO U2,U3;例例3 3 把对表把对表SCSC的查询权限授予所有用户的查询权限授予所有用户 GRANT SELECT ON SC GRANT SELECT ON SC TO TO PUBLICPUBLIC;/PUBLIC;/PUBLIC表示全体用户表示全体用户例例4 4 把查询把查询StudentStudent表和修改学号的权限授给用户表和修改学号的权限授给用户U4U4 GRANT GRANT UPDATE(Sno),UPDATE(Sno),SELECT ON Student TO U4;SELECT ON Student TO U4;上上机机操操作作:点点击击某某数数据据库库如如s_c数数据据库库,进进入入查查询询分分析析器器,输输入上述命令并执行,以下各例相同。入上述命令并执行,以下各例相同。例例题(续)例例5 5 把对表把对表SCSC的的INSERTINSERT权限授予权限授予U5U5用户,并允许他再将此权限用户,并允许他再将此权限 授予其他用户授予其他用户 GRANT INSERT GRANT INSERT ON SC TO U5 ON SC TO U5 WITH GRANT OPTIONWITH GRANT OPTION;执行例执行例5 5后,后,U5U5不仅拥有了对表不仅拥有了对表SCSC的的INSERTINSERT权限,还可以传播此权限,还可以传播此权限权限:GRANT INSERT ON SC GRANT INSERT ON SC TO U6TO U6 WITH GRANT OPTIONWITH GRANT OPTION;同样,同样,U6U6还可以将此权限授予还可以将此权限授予U7U7:GRANT INSERT ON SC GRANT INSERT ON SC TO U7TO U7;但但U7U7不能再传播此权限。不能再传播此权限。U5-U6-U7U5-U6-U72、收回、收回权限限n授授予予的的权权限限可可以以由由DBADBA或或其其他他授授权权者者使使用用REVOKEREVOKE语语句句收回,其一般格式为:收回,其一般格式为:REVOKE REVOKE,.ON ON FROM FROM,.;.;n功能:从指定功能:从指定用户用户那里收回对指定那里收回对指定对象对象的指定的指定权限权限例例题例例6 6 把用户把用户U4U4修改学生学号的权限收回修改学生学号的权限收回REVOKE UPDATE(Sno)REVOKE UPDATE(Sno)ON Student ON Student FROM U4;FROM U4;例例7 7 收回所有用户对表收回所有用户对表SCSC的查询权限的查询权限REVOKE SELECT REVOKE SELECT ON SC ON SC FROM FROM PUBLICPUBLIC;例例题(续)例例8 8 把用户把用户U5U5对对SCSC表的表的INSERTINSERT权限收回权限收回REVOKE INSERT REVOKE INSERT ON SC ON SC FROM U5 CASCADE;FROM U5 CASCADE;系统将收回直接或间接从系统将收回直接或间接从U5处获得的对处获得的对SC表表的的INSERT权限,若权限,若U5将将INSERT权限传给了权限传给了 U6和和 U7,则收回,则收回U5、U6、U7获得的对获得的对SC表的表的INSERT权限。权限。3、创建数据建数据库模式的模式的权限限GRANT CREATE TABLE TO CAO;GRANT CREATE VIEW TO CAO;/在某一数据库下完成,如点击在某一数据库下完成,如点击student数据库,进入数据库,进入查询分析器,输入上述命令并执行。查询分析器,输入上述命令并执行。GRANT CREATE DATABASE TO CAO;/在在master数据库下完成。数据库下完成。REVOKE create view from cao按右键拉出菜单,选择“属性”查看用户即用户权限4.数据数据库角色角色数据库角色是被命名的一组与数据库操作相关的权限,角色是数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。我们可以为一组具有相同权限的用户创建一个角权限的集合。我们可以为一组具有相同权限的用户创建一个角色,以简化授权过程。色,以简化授权过程。n角色创建角色创建CREATE ROLE n给给角色授权角色授权GRANT,ON 对象名对象名 TO,n将一个角色授予其他角色或用户将一个角色授予其他角色或用户GRANT,TO,nsqlserver不支持命令方式,但支持角色的概念和方法。不支持命令方式,但支持角色的概念和方法。nWITH ADMIN OPTION角色角色3和用户和用户1具有角色具有角色1和角色和角色2的权限和,如果带有的权限和,如果带有WITH ADMIN OPTION选项,则角色选项,则角色3和用户和用户1可以将角色可以将角色1和角色和角色2的的权限授予其他角色。执行者是角色的创建者或在其上有权限授予其他角色。执行者是角色的创建者或在其上有 ADMIN OPTION。n角色权限的收回角色权限的收回REVOKE,ON对象名对象名FROM,执行者是角色的创建者或在其上有执行者是角色的创建者或在其上有 ADMIN OPTION。数据数据库角色角色例例11 通过角色来实现将一组权限授予一个用户通过角色来实现将一组权限授予一个用户 CREATE ROLE R1;/创建角色创建角色R1 GRANT SELECT,UPDATE,INSERT ON Student TO R1;/给角色给角色R1授权授权 GRANT R1 TO 王平王平,张明张明,赵玲;赵玲;/将将R1授予王平授予王平,张明张明,赵玲赵玲 REVOKE R1 FROM 王平王平;/收回王平三项权限收回王平三项权限例例12 角色权限的修改角色权限的修改 GRANT DELETE ON Student TO R1;/给角色给角色R1增加增加DELETE权限权限 REVOKE SELECT ON Student FROM R1;/减少减少R1对对Student表的表的SELECT权限权限 数据数据库角色角色第四章第四章 数据数据库安全性安全性4.1 计算机系统安全性概述计算机系统安全性概述4.2 数据库安全性控制数据库安全性控制4.3 数据库存取控制方法数据库存取控制方法4.4 视图机制视图机制4.5 审计审计4.6 统计数据库安全性统计数据库安全性4.7 小结小结4.4 视图机制机制n视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。从而自动地对数据提供一定程度的安全保护。n视图机制与授权机制配合使用视图机制与授权机制配合使用:首先用视图机制屏蔽掉一部分保密数据,然后在视图上面再进首先用视图机制屏蔽掉一部分保密数据,然后在视图上面再进一步定义存取权限。例:一步定义存取权限。例:CREATE VIEW CS_Student /先建立计算机系学生的视图先建立计算机系学生的视图 AS SELECT*FROM Student WHERE Sdept=CS 在视图上进一步定义存取权限在视图上进一步定义存取权限GRANT SELECT ON CS_Student TO 王平王平;GRANT ALL PRIVILIGES ON CS_Student TO 张明;明;第四章第四章 数据数据库安全性安全性4.1 计算机系统安全性概述计算机系统安全性概述4.2 数据库安全性控制数据库安全性控制4.3 数据库存取控制方法数据库存取控制方法4.4 视图机制视图机制4.5 审计审计4.6 统计数据库安全性统计数据库安全性4.7 小结小结4.5 审计n什么是审计什么是审计n启用一个专用的审计日志(启用一个专用的审计日志(Audit Log)将用户对数据库)将用户对数据库的所有操作记录在上面;的所有操作记录在上面;nDBA可以利用审计日志中的追踪信息找出非法存取数据可以利用审计日志中的追踪信息找出非法存取数据的人;的人;n安全级别较高的安全级别较高的DBMS必须具有审计功能。必须具有审计功能。n审计功能的可选性审计功能的可选性n审计很费时间和空间审计很费时间和空间nDBA可以根据应用对安全性的要求,灵活地打开或关闭可以根据应用对安全性的要求,灵活地打开或关闭审计功能。审计功能。审计(续)n审计一般可以分为用户级审计和系统级审计审计一般可以分为用户级审计和系统级审计1)用户级审计是任何用户都可以设置的审计,主要是用户针)用户级审计是任何用户都可以设置的审计,主要是用户针对自己创建的表或视图进行审计,记录所有用户对这些表对自己创建的表或视图进行审计,记录所有用户对这些表或视图进行的操作。或视图进行的操作。2)系统级审计由)系统级审计由DBA设置,监测登录操作、设置,监测登录操作、GRANT和和REVOKE操作、数据库操作。操作、数据库操作。审计(续)nAUDIT语句用来设置审计功能,语句用来设置审计功能,NOAUDIT语句用语句用来取消审计功能。来取消审计功能。例例1:对修改对修改SC表结构和修改表结构和修改SC表数据的操作进行审计表数据的操作进行审计 AUDIT ALTER,UPDATE ON SC;例例2:取消对取消对SC表的一切审计表的一切审计 NOAUDIT ALL ON SC;SQL SERVER通过管理功能来实现。通过管理功能来实现。第四章第四章 数据数据库安全性安全性4.1 计算机系统安全性概述计算机系统安全性概述4.2 数据库安全性控制数据库安全性控制4.3 数据库存取控制方法数据库存取控制方法4.4 视图机制视图机制4.5 审计审计4.6 统计数据库安全性统计数据库安全性4.7 小结小结4.6 统计数据库安全性统计数据库安全性v统计数据数据库 允允许用用户查询聚集聚集类型的信息(如合型的信息(如合计、平均、平均值等)等)v统计数据数据库中特殊的安全性中特殊的安全性问题 隐蔽的信息通道蔽的信息通道,能从合法的能从合法的查询中推中推导出不合出不合法的信息(工法的信息(工资计算,根据算,根据总数和固定部分,推数和固定部分,推出浮出浮动部分)部分)统计数据库安全性(续)统计数据库安全性(续)规则1:任何:任何查询至少要涉及至少要涉及N(N足足够大大)个以上的个以上的记录 规则2:任意两个:任意两个查询的相交数据的相交数据项不能超不能超过M个个 规则3:任一用:任一用户的的查询次数不能超次数不能超过1+(N-2)/M v数据数据库安全机制的安全机制的设计目目标:试图破坏安全的人所花破坏安全的人所花费的代价的代价 得到的利益得到的利益第四章第四章 数据数据库安全性安全性4.1 计算机系统安全性概述计算机系统安全性概述4.2 数据库安全性控制数据库安全性控制4.3 数据库存取控制方法数据库存取控制方法4.4 视图机制视图机制4.5 审计审计4.6 统计数据库安全性统计统计数据库安全性统计4.7 小结小结4.7 小小结n随着计算机网络的发展,数据的共享日益加强,数据的安全随着计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要。保密越来越重要。nDBMS是管理数据的核心,因而其自身必须具有一整套完整是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。而有效的安全性机制。n实现数据库系统安全性的技术和方法有多种,最重要的是实现数据库系统安全性的技术和方法有多种,最重要的是存存取控制取控制技术和技术和审计审计技术。技术。n目前许多大型目前许多大型DBMS 达到了达到了C2级,其安全版本达到了级,其安全版本达到了B1nC2级级的的DBMS必须具有必须具有自主存取控制自主存取控制功能和功能和初步的审计初步的审计功能功能nB1级级的的DBMS必须具有必须具有强制存取控制强制存取控制和和增强的审计增强的审计功能功能n自主存取控制功能一般是通过自主存取控制功能一般是通过SQL 的的GRANT语句和语句和REVOKE语句来实现的语句来实现的