[精选]2017第7章数据库安全性.pptx
《[精选]2017第7章数据库安全性.pptx》由会员分享,可在线阅读,更多相关《[精选]2017第7章数据库安全性.pptx(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章:数据库平安性数据库平安性q数据库平安性概述数据库平安性概述q数据库平安性控制数据库平安性控制qOracle数据库数据平安性控制介绍数据库数据平安性控制介绍对数据库平安的威胁对数据库平安的威胁无意损坏无意损坏天窗天窗心存不满的专业人员数据库数据库受保护数据受保护数据物理损坏物理损坏 火灾,水灾等非法访问非法访问 黑客数据复制数据复制工业间谍蓄意破坏者通信损坏通信损坏典型的数据访问方式典型的数据访问方式查询数据执行C/S结构服务器客户执行数据查询数据库作为服务数据执行查询依赖于数据的方法数据库平安概述数据库平安概述q数据库系统的平安保护措施是否有效是数据库系数据库系统的平安保护措施是
2、否有效是数据库系统主要的性能指标之一统主要的性能指标之一q数据库的平安性数据库的平安性q指保护数据库,防止因用户非法使用数据库所指保护数据库,防止因用户非法使用数据库所造成的数据泄漏、更改或破坏造成的数据泄漏、更改或破坏q数据的保密数据的保密q指用户合法地访问到机密数据后能否对这些数指用户合法地访问到机密数据后能否对这些数据保密据保密q通过制订法律道德准则和政策法规来保证通过制订法律道德准则和政策法规来保证非法使用数据库的情况非法使用数据库的情况l用户编写一段合法的程序绕过用户编写一段合法的程序绕过DBMS及其授权机制,通及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据过操作系统直
3、接存取、修改或备份数据库中的数据l直接或编写应用程序执行非授权操作直接或编写应用程序执行非授权操作l通过屡次合法查询数据库从中推导出一些保密数据通过屡次合法查询数据库从中推导出一些保密数据例如:某数据库应用系统禁止查询单个人的工资,但例如:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的允许查任意一组人的平均工资。用户甲想了解张三的工资工资l首先查询包括张三在内的一组人的平均工资首先查询包括张三在内的一组人的平均工资l然后查用自己替换张三后这组人的平均工资然后查用自己替换张三后这组人的平均工资推导出张三的工资推导出张三的工资l破坏平安性的行为可能是无意的,
4、成心的,恶意的破坏平安性的行为可能是无意的,成心的,恶意的数据库系统的平安机制数据库系统的平安机制授权机制授权机制约束机制约束机制审计审计触发器触发器存储过程存储过程用户用户身份验证身份验证操作系统操作系统数据库服务器数据库服务器(RDBMS)视图视图计算机系统中的平安模型计算机系统中的平安模型 应用应用DBMSOS DB 低低 高高安全性控制层次安全性控制层次 方法:方法:用户标识用户标识和鉴定和鉴定 存取控制存取控制审计审计视图视图 操作系统操作系统 平安保护平安保护 密码存储密码存储数据库平安性控制的常用方法数据库平安性控制的常用方法l用户标识和鉴定用户标识和鉴定Identificati
5、on&Authentication系统提供的最外层平安保护措施系统提供的最外层平安保护措施l存取控制存取控制访问权限访问权限l通过视图调整授权通过视图调整授权定义可向用户授权数据库特定局部的用户视图定义可向用户授权数据库特定局部的用户视图l审计审计追踪信息,重现导致数据库现有状况的一系列事件追踪信息,重现导致数据库现有状况的一系列事件l密码存储密码存储使用加密技术保护机密数据使用加密技术保护机密数据用户标识与鉴定用户标识与鉴定l基本方法基本方法系统提供一定的方式让用户标识自己的名字或身份;系统提供一定的方式让用户标识自己的名字或身份;系统内部记录着所有合法用户的标识;系统内部记录着所有合法用户
6、的标识;每次用户要求进入系统时,由系统核对用户提供的身每次用户要求进入系统时,由系统核对用户提供的身份标识;份标识;通过鉴定后才提供机器使用权。通过鉴定后才提供机器使用权。用户标识和鉴定可以重复屡次用户标识和鉴定可以重复屡次用户标识与鉴定用户标识与鉴定l让用户标识自己的名字或身份的方法让用户标识自己的名字或身份的方法用户名用户名/口令口令l简单易行,容易被人窃取简单易行,容易被人窃取每个用户预先约定好一个计算过程或者函数每个用户预先约定好一个计算过程或者函数l系统提供一个随机数系统提供一个随机数l用户根据自己预先约定的计算过程或者函数进行用户根据自己预先约定的计算过程或者函数进行计算计算l系统
7、根据用户计算结果是否正确鉴定用户身份系统根据用户计算结果是否正确鉴定用户身份用户标识和鉴定用户标识和鉴定lSQLServer提供两种不同的方法来验证用户进入效劳提供两种不同的方法来验证用户进入效劳器。用户可以根据自己的网络配置决定使用其中一种。器。用户可以根据自己的网络配置决定使用其中一种。Windows验证验证lNT以上以上O.S.:允许:允许SQLServer使用使用O.S.的用户的用户名和口令名和口令SQLServer验证验证l用户传给效劳器的登录信息与系统表用户传给效劳器的登录信息与系统表syslogins中中的信息进行比较。如果两个口令匹配,的信息进行比较。如果两个口令匹配,SQLS
8、erver允许用户访问效劳器。如果不匹配,允许用户访问效劳器。如果不匹配,SQLServer不允许访问,并且用户会从效劳器上收到不允许访问,并且用户会从效劳器上收到一个出错信息一个出错信息用户标识和鉴定用户标识和鉴定l效劳器登录标识管理效劳器登录标识管理sa和和Administrator是系统在安装时创立的分别用是系统在安装时创立的分别用于于SQLServer混合验证模式和混合验证模式和Windows验证模式验证模式的系统登录名。如果用户想创立新的登录名或删除的系统登录名。如果用户想创立新的登录名或删除已有的登录名,可使用以下两种方法已有的登录名,可使用以下两种方法使用使用SQLServer企
9、业管理器管理登录名企业管理器管理登录名使用使用SQLServer系统存储过程管理登录名系统存储过程管理登录名用户标识和鉴定用户标识和鉴定l数据库用户管理数据库用户管理在在SQLServer中,登录对象和用户对象是中,登录对象和用户对象是SQLServer进行权限管理的两种不同的对象。进行权限管理的两种不同的对象。登录对象:效劳器方的一个实体,使用一个登录名可登录对象:效劳器方的一个实体,使用一个登录名可以与效劳器上的所有数据库进行交互。以与效劳器上的所有数据库进行交互。用户对象:一个或多个登录对象在数据库中的映射,用户对象:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录
10、对象提供对数可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限,一个登录名可以被授权访问多个数据库的访问权限,一个登录名可以被授权访问多个数据库,一个登录名在每个数据库中只能映射一次。据库,一个登录名在每个数据库中只能映射一次。用户标识和鉴定用户标识和鉴定l数据库用户管理数据库用户管理SQL Server可使用以下两种方法来管理数据库用户使用使用SQLServer企业管理器管理数据库用户;企业管理器管理数据库用户;使用使用SQLServer系统存储过程系统存储过程sp_grantdbaccess管理数据库用户管理数据库用户l在在SQLServer中主要有两种类型的角色中主要有两种类型
11、的角色效劳器角色效劳器角色数据库角色数据库角色存取控制存取控制用户权限用户权限:用户对数据库中的不同数据对象用户对数据库中的不同数据对象允许执行的操作权限允许执行的操作权限关系系统中的存取权限关系系统中的存取权限:不同的不同的DBMS具体具体实现方法是存在一些差异的实现方法是存在一些差异的数据本身数据本身:表、属性列表、属性列外模式外模式,模式模式,内模式内模式不同类型的数不同类型的数据对象有不同据对象有不同的操作权力的操作权力DBMS的的存取控制存取控制SQL:GrantRevoke数据字典数据字典数据库数据库DBMS 用户、DBA用户SQL:查询l任意控制任意控制DACl强制控制强制控制M
12、ACSQL语法分析 语义检查DAC检查检查MAC检查检查继续安全检查q存取控制机制包括存取控制机制包括:定义用户权限定义用户权限,该定义被存放到数据字典中该定义被存放到数据字典中合法权限检查合法权限检查,根据数据字典检查用户权限根据数据字典检查用户权限定义存储权限检查存储权限存取控制存取控制授权授权Authorizationq谁定义?谁定义?DBA是表的建立者即表的属主是表的建立者即表的属主q如何定义?如何定义?SQL语句:语句:GRANT-将对指定操作对象的指定操作权限授予指定的将对指定操作对象的指定操作权限授予指定的用户用户REVOKE-从指定用户那里收回对指定对象的指定权限从指定用户那里
13、收回对指定对象的指定权限存取控制存取控制授权授权qGRANT语句的一般格式语句的一般格式:grant ,on to,with grant option;q例子例子:把查询把查询Students表的权限授给用户表的权限授给用户wang grant select on table Students to wang;q例子例子:把对把对Students和和SC表的所有访问权限授给全部用户表的所有访问权限授给全部用户 grant all priviliges on table Students,SC to public;qDBA把在数据库把在数据库SC中建立表的权限授予用户中建立表的权限授予用户zha
14、o grant createtab on database SC to zhao;存取控制存取控制授权授权qwithgrantoption子句子句例子例子:把对表把对表SC的查询权限、修改成绩权限授给的查询权限、修改成绩权限授给wang和和zhang,并允许并允许wang和和zhang将该权限授予他人将该权限授予他人grantselect,updateGradeontableSCtowang,zhangwithgrantoption;qDBA、对象的建立者和经过、对象的建立者和经过withgrantoption授权的用户授权的用户可以把他们对该对象具有的操作权限授予其它的合法用户可以把他们对该
15、对象具有的操作权限授予其它的合法用户USER1USER2USER3USER4操作权限操作权限 对象对象类型操 作 权 限 属性列TABLESELECT,INSERT,UPDATEDELETE,ALL PRIVIEGES 视图TABLESELECT,INSERT,UPDATEDELETE,ALL PRIVIEGES 基本表TABLESELECT,INSERT,UPDATEDELETE,ALTER,INDEX,ALL PRIVIEGES 数据库DATABASECREATETAB用户权限用户权限l建表建表CREATETABCREATETAB的权限的权限:属于属于DBADBAlDBADBA授予授予-普
16、通用户普通用户l基本表或视图的属主拥有对该表或视图的一切操作权限基本表或视图的属主拥有对该表或视图的一切操作权限l接受权限的用户接受权限的用户一个或多个具体用户一个或多个具体用户PUBLICPUBLIC全体用户全体用户存取控制存取控制授权回收授权回收l授出的权限可以由授出的权限可以由DBA或其他的授权者收回或其他的授权者收回revoke,onfrom,l例子例子:把用户把用户wang和和zhang修改成绩的权限收回修改成绩的权限收回revokeupdateGradeontableSCfromwang,zhang;l例子例子:收回所有用户对收回所有用户对SC表的查询授权表的查询授权revokeS
17、ELECTonTABLESCfromPUBLIC;l授权回收操作是级联的授权回收操作是级联的USER1USER2USER3USER4数据库角色数据库角色Rolel如果要给成千上万个雇员分配许可,将面临很大的管如果要给成千上万个雇员分配许可,将面临很大的管理难题,每次有雇员到来或者离开时,就得有人分配理难题,每次有雇员到来或者离开时,就得有人分配或去除可能与数百张表或视图有关的权限。这项任务或去除可能与数百张表或视图有关的权限。这项任务不但耗时,而且容易出错。不但耗时,而且容易出错。l一个相对简单有效的解决方案就是定义数据库角色。一个相对简单有效的解决方案就是定义数据库角色。l数据库角色是被命名
18、的一组与数据库操作相关的权限,数据库角色是被命名的一组与数据库操作相关的权限,即一组相关权限的集合。即一组相关权限的集合。l可以为一组具有相同权限的用户创立一个角色。使用可以为一组具有相同权限的用户创立一个角色。使用角色来管理数据库权限可以简化授权的过程。角色来管理数据库权限可以简化授权的过程。授权管理授权管理DBARole用户用户用户用户授权授权属于任意控制任意控制视图机制视图机制l视图机制把要保密的数据对无权存取这些数据视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定的用户隐藏起来,从而自动地对数据提供一定程度的平安保护程度的平安保护l视图机制更主要的功能在
19、于提供数据独立性,视图机制更主要的功能在于提供数据独立性,其平安保护功能太不精细,往往远不能到达应其平安保护功能太不精细,往往远不能到达应用系统的要求用系统的要求视图机制视图机制l在实际应用中通常是视图机制与授权机制配合在实际应用中通常是视图机制与授权机制配合使用,首先用视图机制屏蔽掉一局部保密数据,使用,首先用视图机制屏蔽掉一局部保密数据,然后在视图上面再进一步定义存取权限然后在视图上面再进一步定义存取权限l这时视图机制实际上间接实现了支持存取谓词这时视图机制实际上间接实现了支持存取谓词的用户权限定义的用户权限定义视图机制视图机制l例如:例如:USER1只能检索计算机系学生的信息只能检索计算
20、机系学生的信息1先建立计算机系学生的视图先建立计算机系学生的视图CS_StudentCREATEVIEWCS_StudentASSELECTFROMStudentWHERESdept=CS;2在视图上进一步定义存取权限在视图上进一步定义存取权限GRANTSELECTONCS_StudentTOUSER1;SQLServer的平安机制的平安机制lSQLServer采用采用4个等级的平安验证个等级的平安验证:操作系统平安验证;操作系统平安验证;SQLServer平安验证;平安验证;SQLServer数据库平安验证;数据库平安验证;SQLServer数据库对象平安验证。数据库对象平安验证。SQLSe
21、rver的平安机制的平安机制l权限管理:权限管理:在SQL Server中有三种类型的权限语句权限:可以委派给其它用户语句权限:可以委派给其它用户对象权限:可以委派给其它用户对象权限:可以委派给其它用户隐含权限:只允许属于特定角色的人使用隐含权限:只允许属于特定角色的人使用l在在SQLServer中主要有两种类型的角色中主要有两种类型的角色效劳器角色与数据库角色效劳器角色与数据库角色SQLServer的平安机制的平安机制l语句权限语句权限是是SQLServer中功能最强大的一些权限,这些权限只中功能最强大的一些权限,这些权限只限分配在单个数据库,跨数据库的权限是不可能的限分配在单个数据库,跨数
22、据库的权限是不可能的通常只给那些需要在数据库中创立或修改对象、执行通常只给那些需要在数据库中创立或修改对象、执行数据库或事务日志备份的用户数据库或事务日志备份的用户当分配语句权限给用户时,就给了他们创立对象的能当分配语句权限给用户时,就给了他们创立对象的能力,通常使用对应的力,通常使用对应的SQLServer命令来引用命令来引用SQLServer的平安机制的平安机制l语句权限语句权限CREATE DATABASE创立数据库CREATE TABLE创立表CREATE VIEW创立视图CREATE RULE创立规则CREATE DEFAULT创立缺省CREATE PROCEDURE创立存储过程BA
23、CKUP DATABASE备份数据库BACKUP LOG备份事务日志SQLServer的平安机制的平安机制l对象权限对象权限对象权限分配给数据库层次上的对象,并允许用户访问对象权限分配给数据库层次上的对象,并允许用户访问和操作数据库中已存在的对象和操作数据库中已存在的对象没有这些权限,用户将不能访问数据库里的任何对象。没有这些权限,用户将不能访问数据库里的任何对象。这些权限实际上给了用户运行特定这些权限实际上给了用户运行特定SQL语句的能力语句的能力l对象授权操作表:表:SELECT,INSERT,UPDATE,DELETE,REFERENCE视图:视图:SELECT,INSERT,UPDAT
24、E,DELETE存储过程:存储过程:EXECUTE列:列:SELECT,UPDATEOracle数据库的平安性措施数据库的平安性措施lORACLE的平安措施的平安措施:用户标识和鉴定授权和检查机制审计技术用户通过触发器灵活定义自己的平安性措施ORACLE的用户标识和鉴定的用户标识和鉴定lORACLE允许用户重复标识三次允许用户重复标识三次l如果三次仍未通过,系统自动退出如果三次仍未通过,系统自动退出ORACLE的授权与检查机制的授权与检查机制lORACLE授权和检查机制的特色授权和检查机制的特色ORACLE的权限包括系统权限和数据库对象的权限的权限包括系统权限和数据库对象的权限采用非集中式的授
25、权机制采用非集中式的授权机制每个用户授予与回收自己创立的数据库对象的权限每个用户授予与回收自己创立的数据库对象的权限DBA负责授予与回收系统权限,也可以授予与回收所负责授予与回收系统权限,也可以授予与回收所有数据库对象的权限有数据库对象的权限允许重复授权,即可将某一权限屡次授予同一用户,允许重复授权,即可将某一权限屡次授予同一用户,系统不会出错系统不会出错允许无效回收,即用户不具有某权限,但回收此权限允许无效回收,即用户不具有某权限,但回收此权限的操作仍是成功的。的操作仍是成功的。ORACLE的授权与检查机制的授权与检查机制lORACLE的权限的权限系统权限系统权限80多种多种l创立会话创立会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 2017 数据库 安全性
限制150内