您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第5章数据库安全性--新版
回顾基础篇第一章:绪论第二章:数据模型第三章:关系数据库第四章:关系数据库标准语言SQL系统篇数据库系统中的数据是由DBMS统一管理和控制的,为了适应数据共享的环境,DBMS必须提供数据保护能力,以保证数据库中数据的安全可靠和正确有效。数据保护安全性完整性数据库恢复并发控制系统篇第5章数据库安全性第6章数据库完整性第7章数据库恢复技术第8章并发控制第五章数据库安全性问题的提出数据库的一大特点是数据可以共享但数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据数据库安全性(续)数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一第五章数据库安全性5.1计算机安全性概论5.2数据库安全性控制5.3数据库存取控制方法5.4数据库角色5.5视图机制5.6审计5.7数据加密5.8统计数据库安全性5.1计算机系统的安全性概论什么是数据库的安全性数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。数据库系统的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。什么是计算机系统安全性为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。计算机系统的3类安全性问题(续)三类计算机系统安全性问题技术安全类管理安全类政策法律类计算机系统的三类安全性问题(续)技术安全指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。计算机系统的三类安全性问题(续)管理安全软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题。计算机系统的三类安全性问题(续)政策法律类政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。实际上,安全性问题并不是数据库系统所独有的,所有计算机系统中都存在这个问题。在计算机系统中,安全措施是一级一级层层设置的,安全控制模型如图5.1所示。图5.1安全控制模型用户标识和鉴定用户用户存取权限控制DBMS操作系统安全保护OS数据密码存储DB5.2数据库安全性控制根据图5.1的安全模型,当用户进入计算机系统时,系统首先根据输入的用户标识进行身份的鉴定,只有合法的用户才准许进入系统。对已进入系统的用户,DBMS还要进行存取控制,只允许用户进行合法的操作。DBMS是建立在操作系统之上的,安全的操作系统是数据库安全的前提。操作系统应能保证数据库中的数据必须由DBMS访问,而不允许用户越过DBMS,直接通过操作系统访问。数据最后可以通过密码的形式存储到数据库中。5.2.1用户标识和鉴定(IdentificationandAuthentication)数据库系统是不允许一个未经授权的用户对数据库进行操作的。用户标识和鉴定是系统提供的最外层的安全保护措施,其方法是由系统提供一定的方式让用户标识自己的名字或身份,系统内部记录着所有合法用户的标识,每次用户要求进入系统时,由系统进行核实,通过鉴定后才提供机器的使用权。用户标识和鉴定的方法有多种,为了获得更强的安全性,往往是多种方法并举,常用的方法有以下几种:1.用一个用户名或用户标识符来标明用户的身份,系统以此来鉴别用户的合法性。2.为了进一步核实用户身份,常采用用户名与口令(Password)相结合的方法,系统通过核对口令判别用户身份的真伪。3.通过用户名和口令来鉴定用户的方法简单易行,但该方法在使用时,由于用户名和口令的产生和使用比较简单,也容易被窃取,因此还可采用更复杂的方法。例如,每个用户都预先约定好一个过程或者函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数进行计算,系统根据计算结果辨别用户身份的合法性。例如,让用户记住一个表达式,如T=X+2Y,系统告诉用户X=1,Y=2,如果用户回答T=5,则证实了该用户的身份。还可设计复杂的表达式,以使安全性更好。系统每次提供不同的X,Y值,其他人可能看到的是X、Y的值,但不能推算出确切的变换公式T。5.2.2存取控制存取控制机制的功能存取控制机制的组成定义存取权限检查存取权限用户权限定义和合法权检查机制一起组成了DBMS的安全子系统存取控制(续)定义存取权限在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。检查存取权限对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。存取控制(续)常用存取控制方法自主存取控制(DiscretionaryAccessControl,简称DAC)灵活强制存取控制(MandatoryAccessControl,简称MAC)严格自主存取控制方法同一用户对于不同的数据对象有不同的存取权限不同的用户对同一对象也有不同的权限用户还可将其拥有的存取权限转授给其他用户强制存取控制方法每一个数据对象被标以一定的密级每一个用户也被授予某一个级别的许可证对于任意一个对象,只有具有合法许可证的用户才可以存取5.3数据库存取控制方法5.3.1用户权限用户权限由两个要素组成数据对象操作类型关系数据库系统中存取控制的对象不仅有数据本身,还有数据库模式。如表5.1所示:表5.1类型数据对象操作类型模式模式建立、修改、删除、检索外模式建立、修改、删除、检索内模式建立、删除、检索数据表查找、插入、修改、删除属性列查找、插入、修改、删除用户或DBA把授权决定告知系统SQL的GRANT和REVOKEDBMS把授权的结果存入数据字典当用户提出操作请求时,DBMS根据授权定义进行检查,以决定是否执行操作请求5.3.2授权及收权GRANT语句的一般格式:GRANT权限[,权限]...[ON对象类型对象名]TO用户[,用户]...[WITHGRANTOPTION];谁定义?DBA和表的建立者(即表的属主)GRANT功能:将对指定操作对象的指定操作权限授予指定的用户。(1)操作权限对象对象类型操作权限属性列TABLESELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGES视图TABLESELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGES基本表TABLESELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGES数据库DATABASECREATETABLE(2)用户的权限建表(CREATETABLE)的权限:属于DBADBA授予--普通用户基本表或视图的属主拥有对该表或视图的一切操作权限接受权限的用户:一个或多个具体用户PUBLIC(全体用户)(3)WITHGRANTOPTION子句指定了WITHGRANTOPTION子句:获得某种权限的用户还可以把这种权限再授予别的用户。没有指定WITHGRANTOPTION子句:获得某种权限的用户只能使用该权限,不能传播该权限例题例1把查询Student表权限授给用户U1GRANTSELECTON[TABLE]StudentTOU1;11-934班execsp_addrole‘r_test’//添加角色r_testgrantallonstudenttor_test//为角色r_test授权execsp_addlogin‘l_test','123','学生_教学','Simplifiedchinese‘//添加登陆用户名l_testexecsp_grantdbaccess‘l_test','U1‘//为登录l_test在数据库”学生_教学”中添加安全账户U1execsp_addrolemember'r_test','U1‘//添加U1为角色r_test的成员grantselect,updateoncoursetou1withgrantoptionEXECsp_revokedbaccess'u_test'--从数据库pubs中删除安全账户EXECsp_droplogin'l_test'--删除登录l_testEXECsp_droprole'r_test'--删除角色r_test例题(续)例2把对Student表的全部权限授予用户U2和U3GRANTALLPRIVILEGESON[TABLE]StudentTOU2,U3;例4例题(续)例3把对表SC的查询权限授予所有用户GRANTSELECTON[TABLE]SCTOPUBLIC;例题(续)例4把查询Student表和修改学生学号的权限授给用户U4GRANTUPDATE(Sno),SELECTON[TABLE]StudentTOU4;例题(续)例5把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户GRANTINSERTON[TABLE]SCTOU5WITHGRANTOPTION;传播权限执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:GRANTINSERTON[TABLE]SCTOU6WITHGRANTOPTION;同样,U6还可以将此权限授予U7:GRANTINSERTON[TABLE]SCTOU7;但U7不能再传播此权限。U5--U6--U7SQL收回权限的功能REVOKE语句的一般格式为:REVOKE权限[,权限]...[ON对象类型对象名]FROM用户[,用户]...;功能:从指定用户那里收回对指定对象的指定权限例题例7把用户U4修改学生学号的权限收回REVOKEUPDATE(Sno)ON[TABLE]StudentFROMU4;例题(续)例8收回所有用户对表SC的查询权限REVOKESELECTON[TABLE]SCFROMPUBLIC;例题(续)例9把用户U5对SC表的INSERT权限收回REVOKEINSERTON[TABLE]SCFROMU5;5.4数据库角色数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。使用角色来管理数据库权限可以简化授权的过程。在SQL语言中首先用CREATEROLE语句创建角色,然后用GRANT语句给角色授权。1.角色的创建创建角色的SQL语句格式是:execsp_addrole'r_test'2.给角色授权GRANT权限[,权限]…ON对象类型对象名TO角色[,角色]…3.将一个角色授予其他角色或用户execsp_addrolemember角色1,角色或用户例11.通过角色来实现将一组权限授予一个用户。步骤:l、首先创建一个角色Rlexecsp_addrole'R1';2、然后使用GRANT语句给角色R1授权:GRANTSELECT,UPDATE,INSERTON[TABLE]StudentTOR1;3、将这个角色授予U1。使他们具有角色R1所包含的全部权限。execsp_addrolemember‘R1','U1'5.5视图机制视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。视图机制(续)视图机制与授权机制配合使用:首先用视图机制屏蔽掉一部分保密数据视图上面再进一步定义存取权限视图机制(续)例:王平只能检索计算机系学生的信息先建立计算机系学生的视图CS_StudentCREATEVIEWCS_Stu
本文标题:第5章数据库安全性--新版
链接地址:https://www.777doc.com/doc-1267272 .html