您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 2017第7章数据库安全性
第七章:数据库安全性数据库安全性概述数据库安全性控制Oracle数据库数据安全性控制介绍对数据库安全的威胁无意损坏天窗心存不满的专业人员数据库受保护数据物理损坏火灾,水灾等非法访问黑客数据复制工业间谍蓄意破坏者通信损坏典型的数据访问方式查询数据执行C/S结构服务器客户执行数据查询数据库作为服务数据执行查询依赖于数据的方法数据库安全概述数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一数据库的安全性指保护数据库,防止因用户非法使用数据库所造成的数据泄漏、更改或破坏数据的保密指用户合法地访问到机密数据后能否对这些数据保密通过制订法律道德准则和政策法规来保证非法使用数据库的情况用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据直接或编写应用程序执行非授权操作通过多次合法查询数据库从中推导出一些保密数据–例如:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的工资首先查询包括张三在内的一组人的平均工资然后查用自己替换张三后这组人的平均工资推导出张三的工资破坏安全性的行为可能是无意的,故意的,恶意的数据库系统的安全机制授权机制约束机制审计触发器存储过程用户身份验证操作系统数据库服务器(RDBMS)视图计算机系统中的安全模型应用DBMSOSDB低高安全性控制层次方法:用户标识和鉴定存取控制审计视图操作系统安全保护密码存储数据库安全性控制的常用方法用户标识和鉴定(Identification&Authentication)–系统提供的最外层安全保护措施存取控制–访问权限通过视图调整授权–定义可向用户授权数据库特定部分的用户视图审计–追踪信息,重现导致数据库现有状况的一系列事件密码存储–使用加密技术保护机密数据用户标识与鉴定基本方法–系统提供一定的方式让用户标识自己的名字或身份;–系统内部记录着所有合法用户的标识;–每次用户要求进入系统时,由系统核对用户提供的身份标识;–通过鉴定后才提供机器使用权。–用户标识和鉴定可以重复多次用户标识与鉴定让用户标识自己的名字或身份的方法–用户名/口令简单易行,容易被人窃取–每个用户预先约定好一个计算过程或者函数系统提供一个随机数用户根据自己预先约定的计算过程或者函数进行计算系统根据用户计算结果是否正确鉴定用户身份用户标识和鉴定SQLServer提供两种不同的方法来验证用户进入服务器。用户可以根据自己的网络配置决定使用其中一种。–Windows验证NT以上O.S.:允许SQLServer使用O.S.的用户名和口令–SQLServer验证用户传给服务器的登录信息与系统表syslogins中的信息进行比较。如果两个口令匹配,SQLServer允许用户访问服务器。如果不匹配,SQLServer不允许访问,并且用户会从服务器上收到一个出错信息用户标识和鉴定服务器登录标识管理sa和Administrator是系统在安装时创建的分别用于SQLServer混合验证模式和Windows验证模式的系统登录名。如果用户想创建新的登录名或删除已有的登录名,可使用下列两种方法–使用SQLServer企业管理器管理登录名–使用SQLServer系统存储过程管理登录名用户标识和鉴定数据库用户管理在SQLServer中,登录对象和用户对象是SQLServer进行权限管理的两种不同的对象。–登录对象:服务器方的一个实体,使用一个登录名可以与服务器上的所有数据库进行交互。–用户对象:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限,一个登录名可以被授权访问多个数据库,一个登录名在每个数据库中只能映射一次。用户标识和鉴定数据库用户管理SQLServer可使用下列两种方法来管理数据库用户–使用SQLServer企业管理器管理数据库用户;–使用SQLServer系统存储过程sp_grantdbaccess管理数据库用户在SQLServer中主要有两种类型的角色–服务器角色–数据库角色存取控制用户权限:用户对数据库中的不同数据对象允许执行的操作权限关系系统中的存取权限:不同的DBMS具体实现方法是存在一些差别的数据本身:表、属性列外模式,模式,内模式不同类型的数据对象有不同的操作权力DBMS的存取控制SQL:GrantRevoke数据字典数据库DBMS用户、DBA用户SQL:查询任意控制(DAC)强制控制(MAC)SQL语法分析语义检查DAC检查MAC检查继续安全检查存取控制机制包括:定义用户权限,该定义被存放到数据字典中合法权限检查,根据数据字典检查用户权限定义存储权限检查存储权限存取控制–授权(Authorization)谁定义?DBA是表的建立者(即表的属主)如何定义?SQL语句:GRANT-将对指定操作对象的指定操作权限授予指定的用户REVOKE-从指定用户那里收回对指定对象的指定权限存取控制–授权GRANT语句的一般格式:grant权限[,权限]…[on对象类型对象名]to用户[,用户…][withgrantoption];例子:把查询Students表的权限授给用户wanggrantselectontableStudentstowang;例子:把对Students和SC表的所有访问权限授给全部用户grantallpriviligesontableStudents,SCtopublic;DBA把在数据库SC中建立表的权限授予用户zhaograntcreatetabondatabaseSCtozhao;存取控制–授权withgrantoption子句例子:把对表SC的查询权限、修改成绩权限授给wang和zhang,并允许wang和zhang将该权限授予他人grantselect,update(Grade)ontableSCtowang,zhangwithgrantoption;DBA、对象的建立者和经过withgrantoption授权的用户可以把他们对该对象具有的操作权限授予其它的合法用户USER1USER2USER3USER4操作权限对象对象类型操作权限属性列TABLESELECT,INSERT,UPDATEDELETE,ALLPRIVIEGES视图TABLESELECT,INSERT,UPDATEDELETE,ALLPRIVIEGES基本表TABLESELECT,INSERT,UPDATEDELETE,ALTER,INDEX,ALLPRIVIEGES数据库DATABASECREATETAB用户权限建表(CREATETAB)的权限:属于DBADBA授予--普通用户基本表或视图的属主拥有对该表或视图的一切操作权限接受权限的用户–一个或多个具体用户–PUBLIC(全体用户)存取控制–授权回收授出的权限可以由DBA或其他的授权者收回revoke权限[,权限]…[on对象类型对象名]from用户[,用户…]例子:把用户wang和zhang修改成绩的权限收回revokeupdate(Grade)ontableSCfromwang,zhang;例子:收回所有用户对SC表的查询授权revokeSELECTonTABLESCfromPUBLIC;授权回收操作是级联的USER1USER2USER3USER4数据库角色(Role)如果要给成千上万个雇员分配许可,将面临很大的管理难题,每次有雇员到来或者离开时,就得有人分配或去除可能与数百张表或视图有关的权限。这项任务不但耗时,而且容易出错。一个相对简单有效的解决方案就是定义数据库角色。数据库角色是被命名的一组与数据库操作相关的权限,即一组相关权限的集合。可以为一组具有相同权限的用户创建一个角色。使用角色来管理数据库权限可以简化授权的过程。授权管理DBARole用户用户用户用户授权授权属于任意控制视图机制视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据提供一定程度的安全保护视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求视图机制在实际应用中通常是视图机制与授权机制配合使用,首先用视图机制屏蔽掉一部分保密数据,然后在视图上面再进一步定义存取权限这时视图机制实际上间接实现了支持存取谓词的用户权限定义视图机制例如:USER1只能检索计算机系学生的信息–(1)先建立计算机系学生的视图CS_StudentCREATEVIEWCS_StudentASSELECTFROMStudentWHERESdept=‘CS’;–(2)在视图上进一步定义存取权限GRANTSELECTONCS_StudentTOUSER1;SQLServer的安全机制SQLServer采用4个等级的安全验证:–操作系统安全验证;–SQLServer安全验证;–SQLServer数据库安全验证;–SQLServer数据库对象安全验证。SQLServer的安全机制权限管理:在SQLServer中有三种类型的权限–语句权限:可以委派给其它用户–对象权限:可以委派给其它用户–隐含权限:只允许属于特定角色的人使用在SQLServer中主要有两种类型的角色–服务器角色与数据库角色SQLServer的安全机制语句权限–是SQLServer中功能最强大的一些权限,这些权限只限分配在单个数据库,跨数据库的权限是不可能的–通常只给那些需要在数据库中创建或修改对象、执行数据库或事务日志备份的用户–当分配语句权限给用户时,就给了他们创建对象的能力,通常使用对应的SQLServer命令来引用SQLServer的安全机制语句权限–CREATEDATABASE创建数据库–CREATETABLE创建表–CREATEVIEW创建视图–CREATERULE创建规则–CREATEDEFAULT创建缺省–CREATEPROCEDURE创建存储过程–BACKUPDATABASE备份数据库–BACKUPLOG备份事务日志SQLServer的安全机制对象权限–对象权限分配给数据库层次上的对象,并允许用户访问和操作数据库中已存在的对象–没有这些权限,用户将不能访问数据库里的任何对象。这些权限实际上给了用户运行特定SQL语句的能力对象授权操作–表:SELECT,INSERT,UPDATE,DELETE,REFERENCE–视图:SELECT,INSERT,UPDATE,DELETE–存储过程:EXECUTE–列:SELECT,UPDATEOracle数据库的安全性措施ORACLE的安全措施:–用户标识和鉴定–授权和检查机制–审计技术–用户通过触发器灵活定义自己的安全性措施ORACLE的用户标识和鉴定ORACLE允许用户重复标识三次如果三次仍未通过,系统自动退出ORACLE的授权与检查机制ORACLE授权和检查机制的特色–ORACLE的权限包括系统权限和数据库对象的权限–采用非集中式的授权机制–每个用户授予与回收自己创建的数据库对象的权限–DBA负责授予与回收系统权限,也可以授予与回收所有数据库对象的权限–允许重复授权,即可将某一权限多次授予同一用户,系统不会出错–允许无效回收,即用户不具有某权限,但回收此权限的操作仍是成功的。ORACLE的授权与检查机制ORACLE的权限–系统权限(80多种)创建会话创建表创建视图创建用户……–数据库对象的权限Oracle系统权限DBA在创建一个用户时需要将其中的一些权限授予该用户角色–ORACLE支持角色的概念–ORACLE允许DBA定义角色–ORACLE提供的预定义角色CONNECTRESOURCEDBAOracle系统权限CONNECT角色–允许用户登录数据库并执行数据查询和操纵ALTERTABLECREATEVIEW/INDEXDROPTABLE/VIEW/INDEXGRANT,REVOKEINSER
本文标题:2017第7章数据库安全性
链接地址:https://www.777doc.com/doc-1246928 .html