54chap6-数据库的安全性

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第六章数据库的安全性2本章目标计算机系统的三类安全性可信计算机系统评测标准(TCSEC)和它的级别划分数据库的安全性控制及其技术安全性控制机制的功能3授课时间:3学时上机时间:6学时4重点与难点本章重点:1.计算机系统评测标准(TCSEC)和它的级别划分2.SQLSERVER2000安全架构本章难点:1.SQLServer安全性管理的途径5任务一计算机安全性概论本节讨论的两个问题:计算机系统的三类安全性问题可信计算机系统评测标准(TCSEC)6计算机系统的三类安全性问题所谓计算机系统安全性,是指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。技术安全类管理安全类政策法律类7可信计算机系统评测标准(TCSEC)可信计算机系统评测标准(TCSEC):美国国防部制定了TCSEC(可靠计算机系统评估标准,TrustedComputingSystemEvaluationCriteria,简称TCSEC),给出一套标准来定义满足特定安全等级所需的安全功能及其保证的程度。8制定TCSEC标准的目的主要有:1、提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程序做评估。2、给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。9TCSEC对系统安全等级的划分TCSEC将计算机系统划分为四组七个等级,按系统可靠或可信程序逐渐增高排列,依次是:D、C1、C2、B1、B2、B3、A110任务二安全性控制安全性控制定义安全性控制保护数据库以防止不合法的使用所造成的数据泄露和破坏。其基本措施是存取控制安全性措施物理级人际级操作系统级网络级数据库系统级11与数据库有关的安全技术有:用户标识和鉴定、存取控制、视图、审计数据加密12用户标识和鉴别用户标识和鉴别:是系统提供的最外层安全保障措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用。常用的方法:用一个用户名或者用户标识号来标明用户身份口令13存取控制数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现存取控制机制主要包括两部分:定义用户权限合法权限检查14自主存取控制方法自主存取控制:用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。特点:非常灵活15视图机制视图:进行存取权限控制时为不同的用户定义的不同的数据对象范围。16审计审计:审计功能把用户对数据库的所有操作自动记录下来放入审记日志(AuditLog)中。DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。17审计是对选定的用户动作的监控和记录,通常用于:l审查可疑的活动。例如:数据被非授权用户所删除,此时安全管理员可决定对该数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。18数据加密数据加密:是防止数据库中数据在存储和传输中失密的有效手段。加密的两种方法:替换方法转换方法191.创建安全帐户1.新建登陆登陆分为sqlserver身份认证和windows身份认证20用户授权Windows身份认证的登陆:我们可以利用系统存储过程sp_grantlogin实现授权,语法如下:sp_grantlogin[@loginame=]'login‘设定一windows用户或用户组为sqlserver的登陆者21用户授权(续)单击此按钮,将弹出左边的对话框,在这里可以选择Windows系统中的用户22拒绝登录很多时候Windows用户所属的组在SQLServer中有登录帐号,单时很多时候要阻止一些用户登录到SQLServer,这时我们可以利用系统存储过程sp_denylogin来实现:sp_denylogin[@loginame=]'login'23删除登陆删除NT用户或用户组在SqlServer上的登陆信息sp_revokelogin[@loginname]=‘login’24添加SQLServer登录我们可以利用系统存储过程sp_addlogin创建登录,语法如下:sp_addlogin[@loginame=]'login'[,[@passwd=]'password'][,[@defdb=]'database'][,[@deflanguage=]'language']25删除登陆帐号,禁止其访问SQLSERVER其格式为:sp_droplogin[@loginname]‘login’注:1.不能删除系统管理者sa以及当前连接到sqlserver的登陆.2.如果与登陆相匹配的用户仍存在数据库的用户中,则不能删除26Sp_helploginssp_helplogins用来显示sqlserver所有登陆者的信息,包括每一个数据库里与该登陆者相对应的用户名称sp_helplogins[‘loginName’]例:显示登陆者的ghr的登陆信息sp_helplogins‘ghr’272.授权登录访问数据库我们可以利用系统存储过程sp_grantdbaccess来授权SQLServer登录访问,语法如下:sp_grantdbaccess[@loginame=]'login'[,[@name_in_db=]'name_in_db'[OUTPUT]]28sp_revokedbaccess从当前数据库中删除安全帐户。语法sp_revokedbaccess[@name_in_db=]'name‘参数[@name_in_db=]'name'是要删除的帐户名。29授权登录访问数据库(续)30数据库所有者(dbo)dbo是具有在数据库中执行所有活动的暗示性权限的用户sysadmin的任何成员都映射到dbo用户任何其他不是sysadmin角色的成员创建的对象都不属于dbo31guest用户当满足下列所有条件时,登录采用guest用户的标识:登录有访问Microsoft®SQLServer™实例的权限,但没有通过自己的用户帐户访问数据库的权限数据库中含有guest用户帐户32可以在除master和tempdb外(在这两个数据库中它必须始终存在)的所有数据库中添加或删除guest用户。默认情况下,新建的数据库中没有guest用户帐户333.管理服务器角色1.sp_AddSrvRoleMember使登陆成为固定服务器角色的成员sp_addSrvRoleMember‘loginname’,‘rolename’loginname是添加到服务器角色的登陆名称roleName是将登陆添加到固定服务器角色的名称。342.sp_dropsrvrolemember从固定服务器角色中删除MicrosoftSQLServer登录或MicrosoftWindowsNT用户或组。语法sp_dropsrvrolemember‘loginame‘,‘rolename’35参数[@loginame=]'login'将要从固定服务器角色删除的登录的名称。login必须已经存在。[@rolename=]'role'服务器角色的名称。role必须是有效的固定服务器角色,并且必须是下面值中的一个364.数据库角色1.在当前数据库中创建新的sqlserver角色sp_addrole‘roleName’,’ownerName’roleName为新角色的名称,同时必须为不能存在于当前DB中。ownerName为新角色所有者,默认为dbo,必须是当前数据库中的某个用户和角色372.从当前数据库中删除角色sp_dropRole‘rolename’roleName将要从当前数据库中删除的角色的名称rolename必须存在于当前的数据库中。383.向数据库某一角色中添加数据库用户sp_addRoleMember‘rolename’,’memberName’rolename指数据库角色.membername指sqlserver的数据库用户,角色394.sp_DropRoleMember‘roleName’,’MemberName’rolename指数据库角色.membername指sqlserver的数据库用户,角色40Sp_helprolemember用来显示当前数据库中的角色415.管理权限管理权限包括授予或废除执行以下活动的用户权限:处理数据和执行过程(对象权限)处理数据或执行过程时需要称为对象权限的权限类别:SELECT、INSERT、UPDATE和DELETE语句权限,它们可以应用到整个表或视图中SELECT和UPDATE语句权限,它们可以有选择性地应用到表或视图中的单个列上42创建数据库或数据库中的项目(语句权限)创建数据库或数据库中的项(如表或存储过程)所涉及的活动要求一类称为语句权限的权限。43利用授予预定义角色的权限(暗示性权限)利用授予预定义角色的权限(暗示性权限)暗示性权限控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。例如,sysadmin固定服务器角色成员自动继承在SQLServer安装中进行操作或查看的全部权限。44数据库对象所有者还有暗示性权限,可以对所拥有的对象执行一切活动。例如,拥有表的用户可以查看、添加或删除数据,更改表定义,或控制允许其他用户对表进行操作的权限。456.数据控制语句:1.授权语句sql语言用grant语句向用户授予操作权限,grant语句的一般格式为:Grant权限[,权限]……[on对象名]to用户[,用户]….[withGrantOption]46例1.把查询student表权限给用户sql1Grantselectonstudenttosql1例2.把对student表的全部权限授于给sql1和user1Grantallprivilegesonstudenttosql1,user1例3.把对表sc的查询权限授予所有用户Grantselectonsctopublic47例4.把修改学生表学号的权限授给用户sql2Grantupdate(sno)onstudenttosql2例5.DBA把在数据库ghr中建立表的权限授予用户sql2Grantcreatetabletosql2例6.把创建库的权限授予用户sql1Grantcreatedatabasetosql11148例7.把创建数据库和在master数据库下创建表的权限授予给sql1Grantcreatetable,createdatabasetosql1例8.把对学生表的select权限授予sql1,并允许他将此权限传给其他用户.Grantselecton学生表tosql1withgrantoption例9.Sql1可以将此权限授予给sql2Grantselecton学生表tosql2withgrantoption492.收权语句:Revoke权限[,权限]…[on对象名]From用户[,用户]50例10.把sql2修改学生表学号的权限收回RevokeUpdate(学号)on学生表fromsql2例11.把用户sql1对学生表的查看权限收回Revokeselecton学生表fromsql1cascade51授权语句sql语言用deny语句向用户授予操作权限,deny语句的一般格式为:deny权限[,权限]……[on对象名]to用户[,用户]….52视图作为安全机制createviewviewstu01select学号,姓名,专业,年龄,性别from学生表where学号=‘01’

1 / 77
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功