第4章-数据库安全性.ppt

上传人:wj 文档编号:1676096 上传时间:2023-05-01 格式:PPT 页数:97 大小:797KB
下载 相关 举报
第4章-数据库安全性.ppt_第1页
第1页 / 共97页
第4章-数据库安全性.ppt_第2页
第2页 / 共97页
第4章-数据库安全性.ppt_第3页
第3页 / 共97页
第4章-数据库安全性.ppt_第4页
第4页 / 共97页
第4章-数据库安全性.ppt_第5页
第5页 / 共97页
第4章-数据库安全性.ppt_第6页
第6页 / 共97页
第4章-数据库安全性.ppt_第7页
第7页 / 共97页
第4章-数据库安全性.ppt_第8页
第8页 / 共97页
第4章-数据库安全性.ppt_第9页
第9页 / 共97页
第4章-数据库安全性.ppt_第10页
第10页 / 共97页
第4章-数据库安全性.ppt_第11页
第11页 / 共97页
第4章-数据库安全性.ppt_第12页
第12页 / 共97页
第4章-数据库安全性.ppt_第13页
第13页 / 共97页
第4章-数据库安全性.ppt_第14页
第14页 / 共97页
第4章-数据库安全性.ppt_第15页
第15页 / 共97页
第4章-数据库安全性.ppt_第16页
第16页 / 共97页
第4章-数据库安全性.ppt_第17页
第17页 / 共97页
第4章-数据库安全性.ppt_第18页
第18页 / 共97页
第4章-数据库安全性.ppt_第19页
第19页 / 共97页
第4章-数据库安全性.ppt_第20页
第20页 / 共97页
亲,该文档总共97页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第4章-数据库安全性.ppt

《第4章-数据库安全性.ppt》由会员分享,可在线阅读,更多相关《第4章-数据库安全性.ppt(97页珍藏版)》请在冰点文库上搜索。

第4章-数据库安全性.ppt

第四章数据库安全性,引言,数据库的一大特点是数据可以共享。

数据共享必然带来数据库的安全性问题。

数据库系统中的数据共享不能是无条件的共享。

例:

军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据,DBMS统一管理数据,数据库系统阶段由DBMS统一进行数据管理(数据定义、数据组织和存储、数据操纵、事务管理和运行管理、维护等)。

DBMS进行数据库的数据保护主要包括:

数据的安全性和数据的完整性,目的是保证数据的安全可靠和正确有效。

第4章讨论数据的安全性,第5章讨论数据的完整性。

目录,4.1计算机安全性概述4.2数据库安全性控制4.3视图机制4.4审计4.5数据加密4.6统计数据库安全性,其他安全性控制方法,本章目标:

掌握利用DBMS实现数据库安全性控制的常用方法和技术。

4.1计算机安全性概述,4.1.1计算机系统的三类安全性问题4.1.2安全性标准,4.1.1计算机系统的三类安全性问题,计算机系统的安全性:

指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。

计算机系统的三类安全性技术安全管理安全政策法律,计算机系统的三类安全性,技术安全:

采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意攻击时能保证系统正常运行,保证系统内部的数据不增加、不丢失、不泄漏。

管理安全:

由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件以外故障以及场地的以外事故等安全问题。

政策法律:

政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。

数据库的安全性:

指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。

4.1.2安全性标准,可信计算机系统的概论和标准:

规范和指导安全计算机系统部件的生产,比较准确地测定产品的安全性能指标。

最具影响的两个安全性标准:

TCSEC和CC。

数据库系统标准:

TCSEC/TDI,TCSEC,全称:

TrustedComputerSystemEvaluationCriteriaDoD可信计算机系统评估准则,1985年,由美国国防部(DoD)颁布。

之后十年,不同国家开始建立评估准则。

CC,全称:

CommonCriteria,通用准则。

1993年,TCSEC、欧洲信息技术安全评估准则(ITSEC)、加拿大可信计算机产品评估准则(CTCPEC)、美国信息技术安全联邦标准(FC)联合行动,将各自独立的准则集合成单一的、能被广泛使用的IT安全准则,这一行动称为CC项目。

1999年,被ISO采用为国际标准。

目前,CC已基本取代TCSEC,成为评估信息产品安全性的主要标准。

图4.1信息安全标准的发展历史,数据库系统标准TCSEC/TDI,1991年,美国NCSC(国家计算机安全中心)将TCSEC扩展到数据库管理系统,颁布了可信计算机系统评估准则关于可信数据库系统的解释(TrustedDatabaseInterpretation,简称TDI)。

定义了数据库管理系统的设计和实现中需满足和用以进行安全性级别评估的标准。

TCSEC/TDI的基本内容安全策略责任保证文档,TCSEC/TDI安全级别,划分四组七个等级:

CC的安全性级别,CC评估保证级(EAL)划分为7级:

目录,4.1计算机安全性概述4.2数据库安全性控制4.3视图机制4.4审计(Audit)4.5数据加密4.6统计数据库安全性,计算机系统中,安全措施是一级一级层层设置,图4.2计算机系统的安全模型,数据库安全性控制的常用方法,用户标识和鉴定存取控制:

自主存取控制、强制存取控制视图审计密码存储:

数据加密,服务器级别,数据库级别,4.2数据库安全性控制,4.2.1用户标识与鉴别(服务器登录)4.2.2存取控制,4.2.4授权与回收4.2.5数据库角色,4.2.3自主存取控制方法4.2.6强制存取控制方法,学习目标,用户(服务器登录名、数据库用户)给数据库用户授权、回收权限角色(作用、数据库角色、服务器角色)为用户分配角色为登录用户指定服务器角色为数据库用户指定数据库角色,4.2.1用户标识与鉴别,系统提供的最外层安全保护措施。

对获得上机权的用户若要使用数据库时,DBMS进行用户标识和鉴别。

常用方法,用户标识(用户名)口令,SQLSERVER两种登录方式,管理员身份登录WINDOWS管理员身份登录;SQLServer管理员身份登录:

sa;新建登录名登录WINDOWS身份验证:

新建一个WINDOWS身份验证的登录名;SQLServer身份验证:

新建一个混合模式验证的登录名;,管理员身份登录,SQLServer身份登录,

(1)将“服务器属性”的安全性设置为混合模式;

(2)利用“配置管理器”重新启动SQLServer服务;(3)利用SQLServer登录名进行连接登录;,新建登录名,数据库用户,登录名与数据库用户的关系,登录名是访问SQLServer的通行证。

每个登录名的定义存放在master数据库的表syslogins中。

登录名本身并不能让用户访问服务器中的数据库资源。

要访问具体数据库中的资源,还必须有该数据库的用户名。

新的登录创建以后,才能创建数据库用户,数据库用户在特定的数据库内创建,必须和某个登录名相关联。

数据库用户的定义信息存放在与该数据库的sysusers表中。

用户名没有密码和它相关联,大多数情况下,用户名和登录名使用相同的名称,数据库用户名主要用于数据库权限的控制。

登录名与数据库用户的关联:

一个登录名可以映射到不同的数据库,产生多个数据库用户一个登录名在一个数据库至多只能映射一个数据库用户,一个数据库用户只能映射到一个登录帐户允许为每个用户对象分配不同的权限。

4.2.2存取控制,数据库安全性所关心的主要是DBMS的存取控制机制。

DBMS的存取控制机制:

确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法操作数据库中的数据。

存取控制机制包括两部分:

1.定义用户权限,并将用户权限登记到数据字典中DBMS提供语言定义用户权限,被称为安全规则或授权规则。

合法权限检查DBMS根据用户发出存取数据库的操作请求,查找数据字典根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,DBMS拒绝执行此操作。

用户权限定义和合法权检查机制一起组成DBMS的安全子系统。

存取控制方法,自主存取控制(DiscretionaryAccessControl,DAC)用户对不同的数据库对象有不同的存取权限,不同用户对同一对象也有不同的权限,且用户可以将其拥有的权限转授给其他用户。

C2级灵活强制存取控制(MandatoryAccessControl,MAC)每一个数据库对象被标以一定的密级,每个用户被授予某一个级别的许可证。

对于任意一个对象,只有具有合法许可证的用户才可以存取。

B1级严格,4.2.3自主存取控制方法DAC,通过GRANT语句和REVOKE语句实现。

用户权限组成:

数据库对象、操作类型。

定义用户的存取权限就是定义用户可以在哪些数据库对象上进行哪些类型的操作。

定义存取权限称为授权(Authentication),关系数据库系统中的存取权限,4.2.4授权与回收,一、GRANT语句GRANT语句格式:

GRANT,.ON,TO,.WITHGRANTOPTION;语义:

将对指定操作对象的指定操作权限授予指定的用户。

授权者:

DBA数据库对象的创建者(即属主Owner)拥有该权限的用户被授权者(接受权限的数据库用户)一个或多个具体用户PUBLIC(全体用户),WITHGRANTOPTION子句,指定WITHGRANTOPTION子句:

可传播该权限。

不指定WITHGRANTOPTION子句:

不能传播该权限。

但不允许循环授权,例题,例1把查询Student表权限授给用户U1。

GRANTSELECTONTABLEStudentTOU1;,新建用户,例2把对Student表和Course表的全部权限授予用户U2和U3GRANTALLPRIVILEGESONTABLEStudent,CourseTOU2,U3;,例3把对表SC的查询权限授予所有用户GRANTSELECTONTABLESCTOPUBLIC;,例4把查询Student表和修改学生学号的权限授给用户U4。

GRANTUPDATE(Sno),SELECTONTABLEStudentTOU4;对属性列的授权时必须明确指出相应属性列名。

例5把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;,传播权限,执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:

例6GRANTINSERTONTABLESCTOU6WITHGRANTOPTION;同样,U6还可以将此权限授予U7:

例7GRANTINSERTONTABLESCTOU7;但U7不能再传播此权限。

回收,二、REVOKE语句授予的权限可以由DBA或其他授权者用REVOKE语句收回。

REVOKE语句的一般格式为:

REVOKE,.ON,FROM,.;,例8把用户U4修改学生学号的权限收回。

REVOKEUPDATE(Sno)ONTABLEStudentFROMU4;,例9收回所有用户对表SC的查询权限。

REVOKESELECTONTABLESCFROMPUBLIC;,例10把用户U5对SC表的INSERT权限收回REVOKEINSERTONTABLESCFROMU5CASCADE;将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回。

系统只收回直接或间接从U5处获得的权限,如果U6或U7从其他用户获得对SC表的INSERT权限,则他们任然具有此权限。

执行例8到例10的语句后,学生-课程数据库中的用户权限定义表,SQL灵活的授权机制,DBA:

拥有所有对象的所有权限不同的权限授予不同的用户用户:

自己建立的对象拥有全部的操作权限,并可以用GRANT语句授予给不同用户。

被授权的用户:

如果“继续授权”许可,可再授予。

所有授予出去的权力在必要时又都可用REVOKE语句收回。

三、创建用户CREATEUSER语句格式:

CREATEUSERWITHDBA|RESOURCE|CONNECT说明:

只有超级用户才可创建新的数据库用户;新建的数据库用户有三种权限:

CONNECT、RESOURSE、DBA,CONNECT、RESOURSE、DBA权限的可执行操作,4.2.5数据库角色,数据库角色:

被命名的一组与数据库操作相关的权限;作用:

可以为一组具有相同权限的用户创建一个角色;使用角色来管理权限可简化授权的过程。

SQLSERFVER中的角色,数据库角色(分配给数据库用户)固定数据库角色新建数据库角色服务器角色(分配给登录用户),SQLServre服务器角色,

(1)Bulkadmin:

可以运行BULKINSERT语句。

(2)Dbcreator:

可以创建、更改、删除和还原任何数据库。

(3)diskadmin:

管理磁盘文件。

(4)Processadmin:

终止SQLServer实例中运行的进程。

(5)securityadmin:

管理登录名及其属性。

可以GRANT、DENY和REVOKE服务器级权限、可以GRANT、DENY和REVOKE数据库级权限、可以重置SQLServer登录名的密码。

(6)serveradmin:

可以更改服务器范围的配置选项和关闭服务器。

(7)setupadmin:

可以添加和删除链接服务器,并且也可以执行某些系统存储过程。

(8)Sysadmin:

可以在服务器中执行任何活动。

默认情况下,WindowsBUILTINAdministrators组(本地管理员组)的所有成员都是sysadmin固定服务器角色的成员。

服务器登录用户-服务器角色,SQLServre固定数据库角色,固定数据库角色,1)db_accessadmin:

可以为Windows登录帐户、Windows组和SQLServer登录帐户添加或删除访问权限;2)db_backupoperator:

可以备份该数据库;3)db_datareader:

可以读取所有用户表中的所有数据;4)db_datawriter:

可以在所有用户表中添加、删除或更改数据;5)db_ddladmin:

可以在数据库中运行任何数据定义语言(DDL)命令;,6)db_denydatareader:

不能读取数据库内用户表中的任何数据;7)db_denydatawriter:

不能添加、修改或删除数据库内用户表中的任何数据;8)db_owner:

可以执行数据库的所有配置和维护活动;9)db_securityadmin:

可以修改角色成员身份和管理权限。

创建数据库角色,一、角色的创建CREATEROLE二、给角色授权GRANT,ON对象名TO,,三、将一个角色授予其他的角色或用户GRANT,TO,WITHADMINOPTION四、角色权限的收回REVOKE,ONFROM,,例11通过角色来实现将一组权限授予一个用户。

步骤如下:

1.首先创建一个角色R1CREATEROLER1;2.然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限。

GRANTSELECT,UPDATE,INSERTONTABLEStudentTOR1;,3.将这个角色授予王平,张明,赵玲。

使他们具有角色R1所包含的全部权限。

GRANTR1TO王平,张明,赵玲;4.可以一次性通过R1来回收王平的这3个权限。

REVOKER1FROM王平;,例12角色的权限修改GRANTDELETEONTABLEStudentTOR1,为R1增加Student的DELETE权限,例13REVOKESELECTONTABLEStudentFROMR1;,通过角色的使用,可以使自主授权的执行更加灵活、方便。

为用户分配固定数据库角色,EXECsp_addrolememberdb_datareader,u1EXECsp_droprolememberdb_datareader,u1,数据库用户-数据库角色,创建数据库角色并分配给用户,createroler1;grantselectonstudenttor1;execsp_addrolememberr1,u1;,自主存取控制的缺点,可能存在数据的“无意泄露”。

因为权限可以自由地传递。

造成的原因:

这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。

解决:

对系统控制下的所有主客体实施强制存取控制策略。

4.2.6强制存取控制方法,强制存取控制(MAC)指按照TCSEC/TDI标准中安全策略的要求,所采取的强制存取检查手段;保证更高程度的安全性;用户不能直接感知或进行控制;适用于对数据有严格而固定密级分类的部门军事部门政府部门,在MAC中,DBMS所管理的全部实体被分为主体和客体两大类:

主体是系统中的活动实体DBMS所管理的实际用户代表用户的各进程客体是系统中的被动实体,是受主体操纵的文件、基表、索引、视图对主体和客体,DBMS为它们是值指定一个敏感度标记LABLE。

MAC机制通过对比主体的Label和客体的Label,最终确定主体是否能存取客体。

敏感度标记(Label)分为若干级别:

绝密(TopSecret)机密(Secret)可信(Confidential)公开(Public)主体的敏感度标记称为许可证级别(ClearanceLevel)客体的敏感度标记称为密级(ClassificationLevel),强制存取控制规则

(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;

(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体;,禁止了拥有高许可证级别的主体更新低密级的客体,防止敏感数据的泄漏。

只有符合密级标记要求的用户才能操纵数据,提供了更高级别的安全性,MAC与DAC,DAC与MAC共同构成DBMS的安全机制。

实现MAC时要首先实现DAC,DAC+MAC安全检查示意图SQL语法分析&语义检查DAC检查安全检查MAC检查继续,先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取。

其他数据安全性机制,4.3视图机制4.4审计(Audit)4.5数据加密4.6统计数据库安全性,4.3视图机制,把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护。

间接实现了支持“存取谓词”的用户权限定义。

例14建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明。

先建立计算机系学生的视图CS_StudentCREATEVIEWCS_StudentASSELECT*FROMStudentWHERESdept=CS;,在视图上进一步定义存取权限GRANTSELECTONCS_StudentTO王平;GRANTALLPRIVILIGESONCS_StudentTO张明;,4.4审计,审计是DBMS达到C2以上安全级别必不可少的一项指标。

审计:

把用户对数据库的所有操作自动记录下来,形成审计日志(AuditLog)DBA利用审计日志找出非法存取数据的人、时间和内容。

审计通常是很费时间和空间的,DBMS将其可选,允许DBA根据应用对安全性的要求,灵活打开或关闭审计功能。

审计类型,用户级审计用户针对自己创建的数据库表或视图进行审计;记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。

系统级审计DBA设置;监测成功或失败的登录要求;监测GRANT和REVOKE操作以及其他数据库级权限下的操作。

AUDIT语句:

设置审计功能NOAUDIT语句:

取消审计功能,例15对修改SC表结构或修改SC表数据的操作进行审计。

AUDITALTER,UPDATEONSC;例16取消对SC表的一切审计。

NOAUDITALTER,UPDATEONSC;,4.5数据加密,对高度敏感数据(例如财务、军事、国家机密等数据),除了以上安全性措施外,还应该采用数据加密技术。

数据加密是防止数据在存储和传输中失密的有效手段。

加密的基本思想:

根据一定的算法将原始数据(称为明文)变换为不可直接识别的格式(称为密文),从而使得不知道解密算法的人无法获得数据的内容。

加密方法主要有两种:

(1)替换方法。

该方法使用密钥(EncryptionKey)将明文中的每一个字符转换为密文中的字符。

(2)置换方法。

该方法仅将明文的字符按不同的顺序重新排列。

单独使用这两种方法的任意一种都是不够安全的。

但是将这两种方法结合起来就能达到相当高的安全程度。

(DES),数据加密与解密程序会占用大量系统资源,因此也作为可选项,允许用户自由选择,只对高度机密的数据进行加密。

DBMS实现数据加密?

Sqlserver2005加密机制,加密函数证书对称密钥非对称密钥,4.6统计数据库安全性,统计数据库允许用户查询聚集类型的信息(如合计、平均值等)不允许查询单个记录信息统计数据库中特殊的安全性问题隐蔽的信息通道能从合法的查询中推导出不合法的信息,统计数据库安全性(续),规则1:

任何查询至少要涉及N(N足够大)个以上的记录规则2:

任意两个查询的相交数据项不能超过M个规则3:

任一用户的查询次数不能超过1+(N-2)/M,数据库安全机制的设计目标:

使得试图破坏安全的人所花费的代价得到的利益。

4.7小结,数据的共享日益加强,数据的安全保密越来越重要。

DBMS是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。

TCSEC/TDI和CC,实现数据库系统安全性的技术和方法:

用户标识与鉴别存取控制技术视图技术审计技术数据加密自主存取控制功能通过SQL的GRANT语句和REVOKE语句实现。

角色使用角色来管理数据库权限可以简化授权过程CREATEROLE语句创建角色GRANT语句给角色授权,实验4数据安全性,服务器登录用户:

创建SQLSERVER登录用户、windows登录用户数据库用户:

对已经建立的数据库创建用户用户的权限:

使用SQL对数据库用户进行授权和权力回收。

为服务器登录用户分配服务器角色为数据库用户分配数据库角色验证:

操作完成后看看已授权的用户是否真正具有授予的数据操作的权力了;权力收回操作之后的用户是否确实丧失了收回的数据操作的权力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2