[计算机软件及应用]chap06数据库保护机制

上传人:油条 文档编号:49550680 上传时间:2018-07-30 格式:PPT 页数:46 大小:392.40KB
返回 下载 相关 举报
[计算机软件及应用]chap06数据库保护机制_第1页
第1页 / 共46页
[计算机软件及应用]chap06数据库保护机制_第2页
第2页 / 共46页
[计算机软件及应用]chap06数据库保护机制_第3页
第3页 / 共46页
[计算机软件及应用]chap06数据库保护机制_第4页
第4页 / 共46页
[计算机软件及应用]chap06数据库保护机制_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《[计算机软件及应用]chap06数据库保护机制》由会员分享,可在线阅读,更多相关《[计算机软件及应用]chap06数据库保护机制(46页珍藏版)》请在金锄头文库上搜索。

1、王睿智数据库技术与应用第六章 数据库保护机制(安全性控制、并发控制)2Tongji University内容提要 数据库完整性控制(database integrity) 数据库安全性控制(database security ) 并发控制(concurrency control) 数据库恢复(database recovery)(见PPT,chap04-SQL)3Tongji University数据库安全性控制防止未授权用户存取数据库中的数据 ,避免数据的泄漏、更改或破坏!4Tongji University安全性控制的一般方法 用户标识与鉴别 身份验证 密码 随机数验证 存取控制(授权机制

2、) 权限定义 ,存放在数据字典中,权限检查 视图机制 定义外模式,使用视图机制,通过给不同权限用户定义不同的视图 ,把部分需要保密的数据对无权限的用户隐藏起来,达到一定程度 的安全性。 审计 把用户所有的操作及其相关信息存入审计日志,分析日志。 数据加密 对称密钥加密法和公开密钥加密法。5Tongji UniversitySQL Server2005的安全性控制1. SQL Server级的安全控制(连接权) 通过身份验证(登录名和密码)机制来实现 2. 数据库级安全控制 通过用户管理来实现。 3. 数据对象级安全机制 通过权限管理来实现。两种权限管理: 语句权限 对象权限 4. 角色服务器级

3、数据库级数据对象级6Tongji University身份验证验证 模式以确定用户是否具有服务器的连接权。 SQL Server用户来源有两种: uWindows授权的用户这种用户的账号和密码由Windows操作系统建立、维护和管理。 vSQL Server授权的用户这种用户的账号和密码由SQL Server服务器创建、维护和管理。 SQL Server为此提供了两种不同的身份验证模式: uWindows 身份验证模式Windows负责验证用户身份。在这种认证模式下,SQL Server允许 Windows的合法用户连接到SQL Server服务器。 v混合身份验证模式:Windows操作系统

4、和SQL Server一起负责验证用户身份。在这种验证模 式下,SQL Server既接受Windows用户也接受SQL Server用户。服务器级7Tongji University数据库库用户户一个账号只能连接到数据库服务器,如果想访问某个具 体的数据库,就必须是该数据库的用户,否则对该数据 库的访问就会遭到拒绝。 有两种方法创建数据库用户: SSMS T-SQL语言 数据库用户与账号(登录名)有什么关系呢? 映射到登录名的用户就是一种数据库用户。 数据库用户必须依赖于某一个账号,即,在创建数据库用户前必须 先创建一个用于连接服务器的账号或者使用已有的账号。数据库级注意:默认状态下,每个新

5、建的数据库都有一个 用户dbo和Guest, 它是数据库的拥有者,依赖于 创建时所使用的账号。8Tongji University数据对对象的安全性数据对象的安全性认证是用户能接触到数据的最后一道关 卡,而过关的凭证是用户具有对数据对象操作的相应权 限。 权限种类: 对象权限指用户对数据对象的操作权限。主要是指数据操 作语言(DML)的语句权限。即SELECT、UPDATE、 DELETE、INSERT、EXECUTE等。如:用户想查询sc表中数 据,查询的前提是该用户已被授予了对该表的SELECT权 限。 语句权限 指用户对某一个语句执行的权限。这些语主要是 数据定义语言(DDL)的语句。如

6、CREATE DATABASE、 BACKUP DATABASE等。数据对象级9Tongji University对权对权 限的三种管理方式u 授予(GRANT)对用户、角色等授予某种权限。v 收回(REVOKE)对用户、角色等收回已授予的权限。w 禁用(DENY)禁止用户、角色等拥有某种权限。数据对象级10Tongji University如何做?1.先建登录2. 再建用户3. 设置权限11Tongji University如何创建登录账号?1.创建SQL Server登录(1)SSMS 对象资源管理器 安 全性登录名,从快捷菜单中 选择新建登录名,见右 图。 (2)在打开的“登录名-新建”

7、对 话框左侧选择常规选项, 设置登录名、身份验证方式(选 择SQL Server身份验证)、默认 数据库。服务器级CREATE LOGIN login2 WITH PASSWORD=123rzw或 EXEC sp_addlogin login2, 123rzw12Tongji University如何创建登录账号?(Contd.)2. 创建Windows登录(1)SSMS 对象资源管理器 安 全性登录名,从快捷菜单中 选择新建登录名,见右 图。 (2)在打开的“登录名-新建”对 话框左侧选择常规选项, 选择Windows身份验证,单击【 搜索】按钮。(3)在打开的“选择用户或组” 对话框中,单

8、击【高级】按钮 ,【立即查找】本机上已有的 windows用户,单击【确定】 按钮。13Tongji University如何删除登录账号?1.利用SSMS删除登录帐号在对象资源管理器中找到要删除的账号对应的节点,右 击该节点,在弹出的菜单中选择【删除】命令。2.利用T-SQLDrop Login login2服务器级14Tongji University如何创建数据库用户?(1)SSMS对象资源管理器 待创建用户的数据库 安全 性 用户,从快捷菜单中选 择新建用户,如右图所 示。(2)在打开的“数据库用户-新 建”对话框中设置用户名、登 录名(为数据库用户指定已经 存在的账号,该项必须设置)

9、 等。数据库级15Tongji University删除的前提是该用户不拥有任何架构。如果已拥有了架构则 先将其拥有的架构全部删除。例2. 删除用户MyUser的SQL语句如下:DROP USER MyUser如何删除数据库用户?数据库级16Tongji University数据对象级如何进行对象权限的管理 各种类型的对象权限的授予和回收方法基本相同,下面以 数据表sc为例来介绍对象权限的授予和回收的方法。(1)SSMS对象资源管理器数据表 sc,在快捷菜单中选择属性 。(2)打开“表属性”对话框,选择 权限选项,在右侧的界面中, 先通过【添加】按钮在“用户或 角色”列表框中加入相应的用户 和

10、角色,然后依次选择这些用户 或角色并在显示权限列表框中设 置其相应的权限。这些权限就是 对用户或角色授予的表对象权 限。17Tongji University例3 对用户MyUser授予对表sc操作的DELETE权限和SELECT 权限,同时授予了对DELETE权限的分配权,但禁用UPDATE 权限。USE universityGRANT SELECT ON sc TO MyUserGRANT DELETE ON sc TO MyUser WITH GRANT OPTIONDENY UPDATE ON sc TO MyUserGO数据对象级如何为用户授予/回收权限?18Tongji Unive

11、rsity角色 什么是角色? 角色是一种权限管理策略,是若干权限的集合。当一个用户 被赋予一个角色时,该用户将拥有这个角色所包含的全部权 限;一个角色可以赋给多个用户,一个用户也可以拥有多个 角色;角色包含的权限变化,相关用户所拥有的权限也随之 发生改变。 什么是服务器角色? 服务器角色是对服务器进行操作的若干权限的集合。 服务器角色是系统预定义的、用户只能使用不能创建。注意:服务器角色权限对应的操作类型是服务器 级的,如连接服务器、关闭服务器等,而不是针 对数据对象的操作。19Tongji University数据库库角色什么是数据库角色?是对数据库对象进行操作的权限的集合。 数据库角色分两

12、类:固定数据库角色 用户自定义数据库角色 两种创建数据库角色的方法:1.SSMS 2.T-SQL语句 不论采用哪种方法,都须完成下列任务: 建立数据库角色 分配权限给这个角色 分配用户给这个角色20Tongji University用SSMS创建/删除数据库角色(1)找到指定数据库节点下的“ 安全性”节点,右击【角色 】,在弹出的菜单中选择【 新建数据库角色】。(2)在打开的“数据库角色-新 建”对话框中,选择【安全 对象】选项,设置每一具体 对象的权限。21Tongji University 语法:为为数据库库角色添加成员员sp_addrolemember rolename = role,

13、membername = security_accountUSE universityGOCREATE ROLE MyRole2EXEC sp_addrolemember MyRole2, MyUser例 4 在数据库university中,创建一个数据库角色MyRole2, 并将已创建的用户MyUser设置为该角色的成员。 22Tongji University对对角色授予权权限例例5 5 在数据库university中,对角色MyRole2和MyRole3赋 予对表student进行删除和插入的操作权限。USE universityGOGRANT DELETE, INSERT ON stu

14、dent TO MyRole2, MyRole323Tongji University对对角色禁止、收回权权限例例6 6 对角色MyRole2禁用对表sc的UPDTE和DELETE 权限。DENY UPDATE, DELETE ON sc TO MyRole2例7 取消对角色MyRole2和MyRole3授予的对表student进 行删除和插入的操作权限。USE universityGOREVOKE DELETE, INSERT ON student FROM MyRole2, MyRole324Tongji University删删除角色 DROP ROLE语句例例 删除删除MyRoleMy

15、Role角色。角色。DROP ROLE MyRole25Tongji University权限叠加 给角色设定一组权限后,把某用户添加为该角色的成员, 这个用户就有了这个角色的权限;用户可以是一个或多个 角色的成员。 若用户A是多个角色的成员,它从多个角色获得的权限是 叠加的: 叠加情况一:若其中有角色被赋予(GRANT)某个权限,而其余 角色没有得到授权(或授权后又被撤销),则用户A仍拥有该权 限。 叠加情况二:若某个角色“拒绝”(DENY)某一权限,那么成为 该角色成员的用户都不能有此权限,不管其他角色是否授予了该权 限,用户A都没有此权限。 “拒绝”具有最高优先权。26Tongji University例8 用户U是角色A、B和C的成员。如果三个角色 权限如左表所示,那么用户U的权限?权权限角色 A角色 B角色 CSelect on table1Select on view1Update on tables2Delete on table3权权限用户户 USelect on table1Select on view1Update on tables2Delete on table3 表示授权用户U的权限角色A、B和C的权限27Tongji University例8(续) 过了一段时间后,根据需要对权限做了调整,调 整后三个角色的权限如左表所示,那么调整后用户U的权

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号