您好,欢迎访问三七文档
第5章数据库安全性学习目的和要求◆数据库保护概况◆数据库与OS在安全上的关系◆数据库安全性的目标◆数据库的访问控制类型◆DAC访问控制的授/撤权◆SQLSERVER的安全体系结构◆数据库安全其他内容:数据加密、审计、统计数据库安全等5.1数据库保护概况一.数据库破坏类型②ConcurrencyExecution引起数据不一致;③人为破坏;④对数据操作引入的数据错误。①SystemFailure;二.各种类型的保护措施②ConcurrencyExecution引起数据不一致──并发控制;③人为破坏──数据库安全;④对数据操作引入的数据错误──数据库完整性。①SystemFailure──故障恢复;5.2数据库安全性概况回答如下问题:1.数据库与OS在安全上的关系?2.数据库安全性的目标?3.DoDSecurityLevels?4.用户标识与鉴别?一.数据库与OS在安全上的关系①除了OS的安全屏障外,DBMS为加强其安全性,亦应建立有自己的安全体系;②由于DBMS建立在OS之上,要求OS提供承诺,即:不允许用户绕过DBMS安全体系而直接访问DB;③正是因为DBMS和OS有各自独立的安全体系,因此OS的用户要想访问DBMS,必须由DBA设置成DBMS的用户。二.数据库安全性的目标①Secrecy;②Integrity;③Availability。三.DoDSecurityLevels1.访问控制类型强制访问控制MAC(MandatoryAccessControl):基于全系统范围策略,而不由某个用户改变。DB对象和用户分别具有相应的安全级别(SecurityClass和Clearance),用户只有在满足一定规则才能访问某个DB对象。标准支持情况:SQL-92不支持MAC。自主式访问控制DAC(DiscretionaryAccessControl):基于访问权限概念。SQL-92通过GRANT和REVOKE支持该DAC。2.Levels安全级:按A、B、C和D四个等级描述,A最高,D最低。现状:目前大多数RDBMS支持C2级DAC和B1级MAC。A级:要求有数学防范能力。C级:要求支持DAC,又分二个子级C1、C2。C2要求身份认证(Loginverification)和审计跟踪(AuditTrails)。B级:要求支持MAC,又分三个子级B1、B2、B3。四.用户标识与鉴别用户标识:用户名。①只有用户知道的信息;用户鉴别:②只有用户具有的物品;最常见的用户鉴别:口令,要求长度/时间长短/不回显、打印/不可逆加密保存。③个人特征。5.3DAC访问控制的授/撤权回答如下问题:1.DAC的访问控制方式?2.授权类型?3.角色授/撤权?4.数据库对象授/撤权?一.DAC的访问控制方式三.角色授/撤权授权:GRANT角色类型[{,角色类型}]TO用户[IDENTIFIEDBY口令](2)DB对象权限──由DBA或对象创建者授予。自主性访问控制是通过控制用户访问权限,即授权的方式进行的。二.授权(Authorization)类型(1)角色权限──由DBA授予;角色类型::=Connect|Resource|DBA撤权:REVOKE角色类型[{,角色类型}]FROM用户四.数据库对象授/撤权受权者::=PUBLIC|用户授权:GRANT权限ON表名TO受权者[{,受权者}][WITHGRANTOPTION]操作::=SELECT|INSERT|DELETE|UPDATE[(列名表)]权限::=ALLPRIVILEGES|操作[{,操作}]列名表::=列名[{,列名}]撤权:REVOKE权限ON表名FROM受权者[{,受权者}]5.4SQLSERVER安全体系讲解内容:1.SQLSERVER安全体系结构3.SQLSERVER角色定义4.SQLSERVER数据库用户5.SQLSERVER语句授权2.SQLSERVER登录用户6.SQLSERVER对象授权一.SQLSERVER安全体系结构①“组”的概念只在7.0以前版本有。说明:操作系统OSOS登录用户loginDBMS登录用户loginSQLSERVERDBMS角色roleDBMS用户组groupDBMS用户login某个DB用户user某个数据库DB语句数据库对象授权其他数据库DB②登录名可以与DB用户名相同。登录用户只有在成为某个DB的用户时才能访问该DB。③由上图可知,SQLSERVER安全体系由三级组成,即:DBMS或DB服务器、DB、语句与对象级。二.SQLSERVER登录用户sp_addlogin[@loginame=]‘登录名’[,[@passwd=]‘口令’][,[@defdb=]‘缺省数据库名']1.SQLSERVER设定的登录用户(1)sa:系统管理员2.创建登录用户创建登录用户存储过程:说明:(1)只有sa、sysadmin或securityadmin角色的成员才能执行sp_addlogin。(2)登录用户一旦创建即可连接DBMS。(3)相关的存储过程有:sp_grantlogin、sp_revokelogin、sp_droplogin、sp_password、sp_defaultdb等。三.SQLSERVER角色定义1.SQLSERVER中的系统角色public、dbosysadmin、securityadmin、serveradmin、setupadmin、processadmin、diskadmin、dbcreator、bulkadmin(1)服务器级的系统角色(2)常用的数据库级系统角色。说明:①以上系统角色的权限是固定的。②sa被自动分配为sysadmin角色。③数据库的用户自动分配为public角色。④创建数据库对象的用户自动分配为该对象的dbo角色。sp_addrole[@rolename=]‘新角色名’[,[@ownername=]‘该角色所有者']2.用户角色的创建为角色增加成员用户:sp_addrolemember删除角色:sp_droprole查询角色信息:sp_helprole四.SQLSERVER数据库用户sp_adduser[@loginame=]‘登录名'[,[@name_in_db=]‘访问数据库时用的名字']1.SQLSERVER设定的缺省数据库用户guest:一个登录用户在被设定为某个数据库用户之前,可用guest用户身份访问该数据库。2.授权登录用户访问某个数据库删除数据库用户:sp_dropuser其他相关存储过程:sp_grantdbaccess、sp_revokedbaccess。查询数据库用户信息:sp_helpuser五.SQLSERVER语句授权授权语法:可被授权的语句:CREATEDATABASE、CREATEDEFAULT、CREATEFUNCTION、CREATEPROCEDURE、CREATERULE、CREATETABLE、CREATEVIEW、BACKUPDATABASE、BACKUPLOG。GRANT{ALL|语句[,...n]}TO数据库角色或用户[,...n]六.SQLSERVER对象授权授权语法:GRANT{ALL[PRIVILEGES]|权限[,...n]}{[(列名[,...n])]ON{表名|视图名}|ON{表名|视图名}[(列名[,...n])]|ON{存储过程}}TO{用户|角色}[,...n][WITHGRANTOPTION][AS{角色}]说明:(1)WITHGRANTOPTION选项只能授给用户,不能授给角色。得到该选项的用户可将所被授予的权限转授给其它用户;(2)AS用于将权限授给角色。注意:不同的数据库对象有不同的权限。表、视图的权限:SELECT,INSERT,DELETE,REFERENCES,orUPDATE.列的权限:SELECTandUPDATE存储过程的权限:EXECUTE5.4数据库安全其他相关内容讲解内容:1.数据加密3.统计数据库的安全2.审计跟踪一.数据加密(DataEncryption)数据加密场合:存储/传输二个环节。加密的基本思想:加/解密算法(En/DecryptionAlgorithm)+密钥(EncryptionKey)。加密方法:(1)对称加密(私钥加密)(2)非对称加密(公钥加密(Public-KeyEncryption))其他对称加密算法:IDEA、RC2、RC4、RC5。典型代表:DES(DataEncryptionStandard),1977年使用,缺点:授权用户须被告知密钥。典型代表:RSA,由Rivest,Shamir,andAdleman提出。基本思想:公钥(公开、加密)和私钥(私有、解密)。RSA的重要特征:算法可逆,即先加密后解密,或先解密后加密,都可以复原原始数据。二.审计跟踪(AuditTrail)作用:一种监视机制,由DBA控制。对被保密数据的访问进行跟踪,一旦发现潜在企图即报警或事后分析。跟踪的记录内容:①操作类型;④操作的数据;③日期时间;②主机和用户标识;使用:具体的DBMS一般提供相应命令设置/撤销跟踪。⑤数据的前后值。三.统计数据库安全统计DB:存有个人或事件特别信息,且只允许作统计查询而不允许作个别查询的DB。防范:由于个人信息可能从允许查询的结果中推测出,应该堵住此暗道(CovertChannel)。①最小行数N限制;现状:统计DB上的安全难以实施。③查询总数限制。②最大交M限制;阻止方法:──TheEnd──
本文标题:85权限管理
链接地址:https://www.777doc.com/doc-3352475 .html