第4章-数据库安全性PPT文档格式.ppt
《第4章-数据库安全性PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《第4章-数据库安全性PPT文档格式.ppt(97页珍藏版)》请在冰豆网上搜索。
采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意攻击时能保证系统正常运行,保证系统内部的数据不增加、不丢失、不泄漏。
管理安全:
由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件以外故障以及场地的以外事故等安全问题。
政策法律:
政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。
数据库的安全性:
指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。
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:
可以添加和删除链接服务器,并且也