第6章数据库的安全性WS-NE30-3-0306-2北京清华万博网络技术股份有限公司版权所有本章目标本章结束时,学员能够:•了解计算机系统的三类安全性•了解可信计算机系统评测标准(TCSEC)及其级别划分•了解数据库的安全性控制及其技术•了解安全性控制机制•掌握SQLSERVER2000安全架构•掌握SQLSERVER2000安全管理•了解SQLSERVER2000的审计WS-NE30-3-0306-3北京清华万博网络技术股份有限公司版权所有6.1计算机安全性概论•计算机系统的三类安全性问题•可信计算机系统评测标准(TCSEC)WS-NE30-3-0306-4北京清华万博网络技术股份有限公司版权所有6.1计算机安全性概论(续)•所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。•三类安全:–技术安全类–管理安全类–政策法律类WS-NE30-3-0306-5北京清华万博网络技术股份有限公司版权所有6.1.1可信计算机系统评测标准(TCSEC)•可信计算机系统评测标准(TCSEC):–美国国防部制定了TCSEC(可靠计算机系统评估标准,TrustedComputingSystemEvaluationCriteria,简称TCSEC),给出一套标准来定义满足特定安全等级所需的安全功能及其保证的程度。制定TCSEC标准的目的:1、提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程序做评估。2、给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。WS-NE30-3-0306-6北京清华万博网络技术股份有限公司版权所有6.1.1可信计算机系统评测标准(续)TCSEC对系统安全等级的划分:•TCSEC将计算机系统划分为四组七个等级,按系统可靠或可信程序逐渐增高排列,依次是:D、C1、C2、B1、B2、B3、A1WS-NE30-3-0306-7北京清华万博网络技术股份有限公司版权所有6.2数据库安全性控制•安全性控制定义–安全性控制保护数据库以防止不合法的使用所造成的数据泄露和破坏。•安全性措施–物理级–人际级–操作系统级–网络级–数据库系统级WS-NE30-3-0306-8北京清华万博网络技术股份有限公司版权所有6.2数据库安全性控制(续)与数据库有关的安全技术:•身份认证•存取控制•视图•审计•数据加密WS-NE30-3-0306-9北京清华万博网络技术股份有限公司版权所有6.2.1身份认证•用户标识和鉴别:–是系统提供的最外层安全保障措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用。•常用的方法:–用一个用户名或者用户标识号来标明用户身份–口令WS-NE30-3-0306-10北京清华万博网络技术股份有限公司版权所有6.2.2存取控制数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现•存取控制机制主要包括两部分:–定义用户权限–合法权限检查•当前大型DBMS支持的两个安全级别:–C2级的DAC(自主存取控制)–B1级的MAC(强制存取控制)WS-NE30-3-0306-11北京清华万博网络技术股份有限公司版权所有6.2.3视图机制•视图:–进行存取权限控制时为不同的用户定义的不同的数据对象范围。WS-NE30-3-0306-12北京清华万博网络技术股份有限公司版权所有6.2.4审计•审计:–审计功能把用户对数据库的所有操作自动记录下来放入审记日志(AuditLog)中。–DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。WS-NE30-3-0306-13北京清华万博网络技术股份有限公司版权所有6.2.5数据加密•数据加密:–是防止数据库中数据在存储和传输中失密的有效手段。•加密的两种方法:–替换方法–转换方法WS-NE30-3-0306-14北京清华万博网络技术股份有限公司版权所有6.3SQLServer2000安全构架WS-NE30-3-0306-15北京清华万博网络技术股份有限公司版权所有6.3.1SQLServer的登录认证用户使用SQLServer要经过两个安全性阶段:•身份验证•授权(权限验证)WS-NE30-3-0306-16北京清华万博网络技术股份有限公司版权所有6.3.1SQLServer的登录认证(续)WS-NE30-3-0306-17北京清华万博网络技术股份有限公司版权所有6.3.1SQLServer的登录认证(续)身份验证模式比较:•Windows认证模式的优点–更先进的安全策略–一组只需建一个用户–更快捷的访问•混合认证模式的优点–非windows用户及Internet客户可以连接到数据库WS-NE30-3-0306-18北京清华万博网络技术股份有限公司版权所有6.3.2身份验证模式设置WS-NE30-3-0306-19北京清华万博网络技术股份有限公司版权所有6.3.3权限验证WS-NE30-3-0306-20北京清华万博网络技术股份有限公司版权所有6.3.3权限验证(续)两个默认登录帐户:•BUILTIN\Administrators–WINDOWSadministrators组成员默认使用此帐户登录•Sa–使用混合认证方式时,SQLSERVER的登录帐户WS-NE30-3-0306-21北京清华万博网络技术股份有限公司版权所有6.4SQLServer安全管理•管理SQLServer登录•数据库用户WS-NE30-3-0306-22北京清华万博网络技术股份有限公司版权所有6.4.1管理SQLServer登录--新建登录WS-NE30-3-0306-23北京清华万博网络技术股份有限公司版权所有6.4.1管理SQLServer登录-新建登录(windows身份验证)单击此按钮,将弹出左边的对话框,在这里可以选择Windows系统中的用户设置默认数据库WS-NE30-3-0306-24北京清华万博网络技术股份有限公司版权所有6.4.1管理SQLServer登录-新建登录(SQLServer身份验证)SQLserver身份验证用户名设置默认数据库WS-NE30-3-0306-25北京清华万博网络技术股份有限公司版权所有6.4.1管理SQLServer登录-查看登录、修改登录(密码),拒绝、删除登录WS-NE30-3-0306-26北京清华万博网络技术股份有限公司版权所有6.4.2数据库用户•数据库用户简介•管理数据库用户WS-NE30-3-0306-27北京清华万博网络技术股份有限公司版权所有6.4.2.1数据库用户简介数据库最高权限用户--数据库所有者(dbo):•dbo是具有在数据库中执行所有活动的暗示性权限的用户•sysadmin的任何成员都映射到dbo用户•任何其他不是sysadmin角色的成员创建的对象都不属于dboWS-NE30-3-0306-28北京清华万博网络技术股份有限公司版权所有6.4.2.1数据库用户简介(续)数据库特殊用户--guest用户:•当满足下列所有条件时,登录采用guest用户的标识:登录有访问MicrosoftSQLServer实例的权限,但没有对应的用户帐户访问数据库的权限数据库中含有guest用户帐户•可以在除master和tempdb外(在这两个数据库中它必须始终存在)的所有数据库中添加或删除guest用户。默认情况下,新建的数据库中没有guest用户帐户WS-NE30-3-0306-29北京清华万博网络技术股份有限公司版权所有6.4.2.1数据库用户简介(续)数据库对象所有者:•SQLServer查找对象的顺序为:o当前用户所拥有o为dbo所拥有•如果找不到对象,返回错误信息WS-NE30-3-0306-30北京清华万博网络技术股份有限公司版权所有6.4.2.2管理数据库用户-创建数据库用户指定对应登录帐户WS-NE30-3-0306-31北京清华万博网络技术股份有限公司版权所有6.4.2.2管理数据库用户-删除登录和用户•删除用户和组时将自动删除为该用户定义的权限•当某个用户当前拥有数据库对象时不能被删除•删除用户不会自动删除登录,因此不会防止用户联接到SQLServer实例WS-NE30-3-0306-32北京清华万博网络技术股份有限公司版权所有6.4.2.2管理数据库用户-给数据库用户分配权限WS-NE30-3-0306-33北京清华万博网络技术股份有限公司版权所有6.5权限管理权限管理包括授予或废除活动的用户权限:•处理数据和执行过程(对象权限)•创建数据库或数据库中的项目(语句权限)•利用授予预定义角色的权限(暗示性权限)WS-NE30-3-0306-34北京清华万博网络技术股份有限公司版权所有6.5权限管理(续)GRANT:CanPerformActionREVOKE:NeutralDENY:CannotPerformActionWS-NE30-3-0306-35北京清华万博网络技术股份有限公司版权所有6.5.1对象权限对象权限是指:处理数据或执行过程时需要的权限.包括:•SELECT、INSERT、UPDATE和DELETE语句权限,它们可以应用到整个表或视图中。•SELECT和UPDATE语句权限,它们可以有选择性地应用到表或视图中的单个列上。•SELECT权限,它们可以应用到用户定义函数。•INSERT和DELETE语句权限,它们会影响整行,因此只可以应用到表或视图中,而不能应用到单个列上。•EXECUTE语句权限,它们可以影响存储过程和函数。WS-NE30-3-0306-36北京清华万博网络技术股份有限公司版权所有6.5.2语句权限•创建数据库或数据库中的项(如表或存储过程)所涉及的活动要求另一类称为语句权限的权限。•语句权限有:CREATEDATABASE创建数据库CREATETABLE创建表CREATEVIEW创建视图CREATERULE创建规则CREATEDEFAULT创建缺省CREATEPROCEDURE创建存储过程BACKUPDATABASE备份数据库BACKUPLOG备份事务日志WS-NE30-3-0306-37北京清华万博网络技术股份有限公司版权所有6.5.3暗示性权限•暗示性权限控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。例如,sysadmin固定服务器角色成员自动继承在SQLServer安装中进行操作或查看的全部权限。•数据库对象所有者还有暗示性权限,可以对所拥有的对象执行一切活动。•例如,拥有表的用户可以查看、添加或删除数据,更改表定义,或控制允许其他用户对表进行操作的权限。WS-NE30-3-0306-38北京清华万博网络技术股份有限公司版权所有权限管理小结预定义FixedRoleObjectOwner对象SELECTINSERTUPDATEDELETEREFERENCESSELECTUPDATEREFERENCESEXECTABLEVIEWCOLUMNSTOREDPROCEDURE语句CREATEDATABASECREATETABLECREATEVIEWCREATEPROCEDURECREATERULECREATEDEFAULTCREATEFUNCTIONBACKUPDATABASEBACKUPLOGWS-NE30-3-0306-39北京清华万博网络技术股份有限公司版权所有6.6角色管理使用数据库角色的好处:对于任何用户,都可以随时让多个数据库角色处于活动状态如果所有用户、组和角色都在当前数据库中,则SQLServer角色可以包含WindowsNT4.0或Windows2000组和用户,以及SQLServer用户和其它角色在同一数据库中,一个用户可属于多个角色提供了可伸缩模型以便在数据库中设置正确的安