您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第5章安全性控制技术
DatabaseSecurity金培权(jpq@ustc.edu.cn)第5章安全性控制技术2DatabaseSecurity金培权(jpq@ustc.edu.cn)Databasesprotection数据库保护:排除和防止各种对数据库的干扰破坏,确保数据安全可靠,以及在数据库遭到破坏后尽快地恢复数据库保护通过四个方面来实现数据库的恢复技术Dealwithfailure并发控制技术Dealwithdatasharing完整性控制技术Enableconstraints安全性控制技术Authorizationandauthentication3DatabaseSecurity金培权(jpq@ustc.edu.cn)主要内容数据库安全性控制概述用户标识与鉴别存取控制视图机制4DatabaseSecurity金培权(jpq@ustc.edu.cn)一、数据库安全性控制概述非法使用数据库的情况用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;直接或编写应用程序执行非授权操作;通过多次合法查询从数据库中推导出一些保密数据5DatabaseSecurity金培权(jpq@ustc.edu.cn)一、数据库安全性控制概述例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的工资,于是他:首先查询包括张三在内的一组人的平均工资然后查用自己替换张三后这组人的平均工资从而推导出张三的工资6DatabaseSecurity金培权(jpq@ustc.edu.cn)一、数据库安全性控制概述计算机系统中的安全模型应用DBMSOSDB低高安全性控制层次方法:用户标识和鉴定存取控制审计视图操作系统安全保护密码存储7DatabaseSecurity金培权(jpq@ustc.edu.cn)一、数据库安全性控制概述数据库安全性控制的常用方法用户标识和鉴定存取控制视图审计密码存储8DatabaseSecurity金培权(jpq@ustc.edu.cn)二、用户标识与鉴别用户标识与鉴别(Identification&Authentication)系统提供的最外层安全保护措施9DatabaseSecurity金培权(jpq@ustc.edu.cn)1、用户标识与鉴别基本方法系统提供一定的方式让用户标识自己的名字或身份;系统内部记录着所有合法用户的标识;每次用户要求进入系统时,由系统核对用户提供的身份标识;通过鉴定后才提供系统使用权。用户标识和鉴定可以重复多次10DatabaseSecurity金培权(jpq@ustc.edu.cn)2、用户标识自己的名字或身份用户名/口令简单易行,容易被人窃取每个用户预先约定好一个计算过程或者函数系统提供一个随机数用户根据自己预先约定的计算过程或者函数进行计算系统根据用户计算结果是否正确鉴定用户身份11DatabaseSecurity金培权(jpq@ustc.edu.cn)三、存取控制存取控制机制的功能授权(Authorization)对每个用户定义存取权限验证(Authentication)对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作授权和验证机制一起组成了DBMS的安全子系统12DatabaseSecurity金培权(jpq@ustc.edu.cn)三、存取控制常用存取控制方法自主存取控制(DiscretionaryAccessControl,简称DAC)C2级灵活强制存取控制(MandatoryAccessControl,简称MAC)B1级严格13DatabaseSecurity金培权(jpq@ustc.edu.cn)1、自主存取控制方法同一用户对于不同的数据对象有不同的存取权限不同的用户对同一对象也有不同的权限用户还可将其拥有的存取权限转授给其他用户14DatabaseSecurity金培权(jpq@ustc.edu.cn)(1)存取权限存取权限由两个要素组成数据对象操作类型15DatabaseSecurity金培权(jpq@ustc.edu.cn)(2)关系数据库系统中的存取权限16DatabaseSecurity金培权(jpq@ustc.edu.cn)(2)关系数据库系统中的存取权限关系数据库系统中的存取权限定义方法GRANT/REVOKE/DENY17DatabaseSecurity金培权(jpq@ustc.edu.cn)(3)授予权限GRANT{ALL|statement[,...n]}TOsecurity_account[,...n]GRANT{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table|view}|ON{table|view}[(column[,...n])]|ON{stored_procedure|extended_procedure}|ON{user_defined_function}}TOsecurity_account[,...n][WITHGRANTOPTION][AS{group|role}]语句权限对象权限18DatabaseSecurity金培权(jpq@ustc.edu.cn)(3)授予权限例子:授予语句权限下面的示例给用户Mary和John授予多个语句权限。GRANTCREATEDATABASE,CREATETABLETOMary,John授予全部语句权限给用户RoseGRANTALLtoRose19DatabaseSecurity金培权(jpq@ustc.edu.cn)(3)授予权限例子:授予对象权限GRANTSELECTONauthorsTOpublicGRANTINSERT,UPDATE,DELETEONauthorsTOMary,John,Tom20DatabaseSecurity金培权(jpq@ustc.edu.cn)(4)拒绝权限拒绝给当前数据库内的安全帐户授予权限语句权限:DENY{ALL|statement[,...n]}TOsecurity_account[,...n]对象权限:DENY{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table|view}|ON{table|view}[(column[,...n])]|ON{stored_procedure|extended_procedure}|ON{user_defined_function}}TOsecurity_account[,...n][CASCADE]21DatabaseSecurity金培权(jpq@ustc.edu.cn)(4)拒绝权限例子:拒绝语句权限下例对多个用户拒绝多个语句权限。用户不能使用CREATEDATABASE和CREATETABLE语句DENYCREATEDATABASE,CREATETABLETOMary,John对用户Rose拒绝全部语句权限DENYALLtoRose22DatabaseSecurity金培权(jpq@ustc.edu.cn)(4)拒绝权限例子:拒绝对象权限DENYINSERT,UPDATE,DELETEONauthorsTOMary,John,Tom23DatabaseSecurity金培权(jpq@ustc.edu.cn)(5)废除权限废除以前授予或拒绝的权限。废除类似于拒绝,但是,废除权限是删除已授予的权限,并不妨碍用户、组或角色从更高级别继承已授予的权限。因此,如果废除用户查看表的权限,不一定能防止用户查看该表,因为已将查看该表的权限授予了用户所属的角色。角色是权限的一个集合,可以指派给用户或其它角色。这样只对角色进行权限设置便可以实现对多个用户权限的设置24DatabaseSecurity金培权(jpq@ustc.edu.cn)(5)废除权限举例:DENY与REVOKE区别从HumanResources角色中删除Employees表上的SELECT访问权限将废除该权限,从而使HumanResources不能再使用该表。如果HumanResources是Administration角色的成员。如果以后将Employees上的SELECT权限授予了Administration,则HumanResources的成员可以通过Administration中的成员资格看到该表。但是,如果对HumanResources拒绝SELECT权限,则即使以后向Administration授予权限,HumanResources也不会继承该权限25DatabaseSecurity金培权(jpq@ustc.edu.cn)(5)废除权限例子:废除授予用户帐户的语句权限下例废除已授予用户Joe的CREATETABLE权限。它删除了允许Joe创建表的权限。不过,如果已将CREATETABLE权限授予给了包含Joe的任何角色,那么Joe仍可创建表。REVOKECREATETABLEFROMJoe26DatabaseSecurity金培权(jpq@ustc.edu.cn)(5)废除权限例子:废除授予多个用户帐户的多个权限下例废除授予多个用户的多个语句权限。REVOKECREATETABLE,CREATEINDEXFROMMary,John27DatabaseSecurity金培权(jpq@ustc.edu.cn)(5)废除权限例子:废除拒绝的权限用户Mary是Budget角色的成员,已给该角色授予了对Budget_Data表的SELECT权限。已对Mary使用DENY语句以防止Mary通过授予Budget角色的权限访问Budget_Data表下例删除对Mary拒绝的权限,并通过适用于Budget角色的SELECT权限,允许Mary对该表使用SELECT语句。REVOKESELECTONBudget_DataTOMary28DatabaseSecurity金培权(jpq@ustc.edu.cn)(6)权限验证对于通过鉴定后又进一步发出存取数据库操作的用户DBMS查找数据字典,根据其存取权限对操作的合法性进行检查若用户的操作请求超出了定义的权限,系统将拒绝执行此操作29DatabaseSecurity金培权(jpq@ustc.edu.cn)(7)授权粒度授权粒度是指可以定义的数据对象的范围它是衡量授权机制是否灵活的一个重要指标授权定义中数据对象的粒度越细,即可以定义的数据对象的范围越小,授权子系统就越灵活。30DatabaseSecurity金培权(jpq@ustc.edu.cn)(7)授权粒度关系数据库中授权的数据对象粒度数据库表属性列行31DatabaseSecurity金培权(jpq@ustc.edu.cn)(8)实现用户自定义的授权利用存取谓词存取谓词可以很复杂可以引用系统变量,如终端设备号,系统时钟等,实现与时间地点有关的存取权限,这样用户只能在某段时间内,某台终端上存取有关数据32DatabaseSecurity金培权(jpq@ustc.edu.cn)(8)实现用户自定义的授权例:规定“只能在周一到周五的上班时间9:00-17:00之间处理仓库数据”CREATETRIGGERsecure_ckON仓库FORINSERT,DELETE,UPDATEASIFDATENAME(weekday,getdate())='星期六'ORDATENAME(weekday,getdate())='星期日'OR(convert(INT,DATENAME(hour,getdate()))NOTBETWEEN9AND17)BEGINRAISERROR('只许在工作时间操作!',16,1)ROLLBACKTRANSACTIONEND33DatabaseSecurity金培权(jpq@ustc.edu.cn)(9)自主存取控制小
本文标题:第5章安全性控制技术
链接地址:https://www.777doc.com/doc-1267267 .html