数据库原理课件--04安全性操作.ppt_第1页
数据库原理课件--04安全性操作.ppt_第2页
数据库原理课件--04安全性操作.ppt_第3页
数据库原理课件--04安全性操作.ppt_第4页
数据库原理课件--04安全性操作.ppt_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL Server权限管理策略 用户权限管理,SQL Server权限管理,SQL Server权限管理策略,安全帐户认证 访问许可确认,安全帐户认证,安全帐户认证是用来确认登录SQL Server的用户的登录帐号和密码的正确性,由此来验证其是否具有连接SQL Server的权限。,SQL Server 2000提供了两种确认用户的认证模式: (一)Windows NT认证模式。 (二)混合认证模式。,(一)Windows NT认证模式,SQL Server数据库系统通常运行在Windows NT操作系统(具备管理登录、验证用户合法性的能力)。 在这种模式下,用户只需要通过Windows NT的认证,就可以连接到SQL Server,而SQL Server本身不需要管理一套登录数据。,(二)混合认证模式,混合认证模式允许用户使用Windows NT安全性或SQL Server安全性连接到SQL Server,这就意味着用户可以使用他的帐号登录到Windows NT,或者使用他的登录名登录到SQL Server系统。NT的用户既可以使用NT认证,也可以使用SQL Server认证。,利用企业管理器进行认证模式的设置,其主要过程如下: 1. 打开企业管理器,用右键单击要设置认证模式的服务器,从快捷菜单中选择“属性(properties)”选项,则出现SQL Server属性对话框。 2. 在SQL Server属性对话框中选择安全性选项。,利用企业管理器进行认证模式的设置,3. 在安全性选项栏中,身份验证中可以选择要设置的认证模式,同时审核级别中还可以选择跟踪记录用户登录时的哪种信息,例如登录成功或登录失败的信息等。 4. 在启动服务帐户中设置当启动并运行SQL Server时默认的登录者中哪一位用户。,访问许可确认,但是通过认证阶段并不代表用户能够访问SQL Server中的数据,同时他还必须通过许可确认。用户只有在具有访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作,这种用户访问数据库权限的设置是通过用户帐号来实现的。,6.2 用户权限管理,6.2.1 服务器登录帐号和用户帐号管理 6.2.2 许可(权限)管理 6.2.3 角色管理,服务器登录帐号和用户帐号管理,1. SQL Server服务器登录管理 SQL Server有三个默认的用户登录帐号:即sa、administratorsbuiltin和guest。 2. 用户帐号管理,1.利用企业管理器创建、管理SQL Server登录帐号,其具体执行步骤如下: ()打开企业管理器,单击需要登录的服务器左边的“+”号,然后展开安全性文件夹。 ()用右键单击登录(login)图标,从快捷菜单中选择新建登录(new login)选项,则出现SQL Server登录属性新建登录对话框,如图2所示。,1.利用企业管理器创建、管理SQL Server登录帐号,(3)在名称编辑框中输入登录名,在身份验证选项栏中选择新建的用户帐号是Windows NT认证模式,还是SQL Server认证模式。 ()选择服务器角色页框,如图3所示。在服务器角色列表框中,列出了系统的固定服务器角色。,()选择数据库访问页框,如图4所示。上面的列表框列出了该帐号可以访问的数据库,单击数据库左边的复选框,表示该用户可以访问相应的数据库以及该帐号在数据库中的用户名。 ()设置完成后,单击“确定”按钮即可完成登录帐号的创建。,图2 新建登录帐号对话框,图3 服务器角色对话框,图4 数据库访问对话框,使用SQL Server的创建登录向导工具创建登录帐号。,其具体操作过程如下: 图5 -图11,图5 欢迎使用创建登录向导对话框,图6 选择身份验证模式对话框,图7 选择对用户帐号的安全性设置对话框,图8 输入登录信息对话框,图9 选择安全性角色对话框,图10 选择允许登录帐号访问的数据库对话框,图11 完成创建登录向导对话框,2.用户帐号管理,在数据库中,一个用户或工作组取得合法的登录帐号,只表明该帐号通过了Windows NT认证或者SQL Server认证,但不能表明其可以对数据库数据和数据库对象进行某种或者某些操作,只有当他同时拥有了用户帐号后,才能够访问数据库。,利用企业管理器可以授予SQL Server登录访问数据库的许可权限。使用它可创建一个新数据库用户帐号 。,许可(权限)管理,许可用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。用户在登录到SQL Server之后,其用户帐号所归属的NT组或角色所被赋予的许可(权限)决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在每个数据库中用户的许可独立于用户帐号和用户在数据库中的角色,每个数据库都有自己独立的许可系统,在SQL Server中包括三种类型的许可:即对象许可、语句许可和预定义许可。,三种许可类型,1、对象许可 表示对特定的数据库对象,即表、视图、字段和存储过程的操作许可,它决定了能对表、视图等数据库对象执行哪些操作。,2、语句许可 表示对数据库的操作许可,也就是说,创建数据库或者创建数据库中的其它内容所需要的许可类型称为语句许可。,三种许可类型,3、预定义许可 是指系统安装以后有些用户和角色不必授权就有的许可。,可用于语句许可的Transaction_SQL 语句及其含义如下:,Create database:创建数据库 Create table:创建表 Create view:创建视图 Create rule:创建规则 Create default:创建缺省 Create procedure:创建存储过程 Create index:创建索引 Backup database:备份数据库 Backup log:备份事务日志,许可的管理,1. 使用SQL Server 企业管理器管理许可 SQL Server 可通过两种途径:即面向单一用户和面向数据库对象的许可设置,来实现对语句许可和对象许可的管理,从而实现对用户许可的设定。,Transaction_SQL 语句使用grant、revoke和deny三种命令来实现管理权限。,2. 使用Transaction_SQL 语句,Grant语句其语法形式如下:,()对语句的许可 Grant all|statement,n to security_account,n,Grant语句其语法形式如下:,()对对象的许可 grant all priviledges|permission,n (column,n) on table|view |on table|view (column,n) |on stored_procedure|extended_procedure to security_account,n as group|role,Deny语句其语法形式如下:,()否定语句的许可 deny all|statement,n to security_account ,n,Deny语句其语法形式如下:,()否定对象的许可 deny all priviledges|permission,n (column,n) on table|view |on table|view (column,n) |on stored_procedure|extended_procedure to security_account,n,Revoke语句其语法形式如下:,()收回语句的许可 revoke all|statement,n from security_account ,n,Revoke语句其语法形式如下:,()收回对象的许可 revoke grant option for all priviledges|permission,n (column,n) on table|view |on stored_procedure|extended_procedure from security_account,n as group|role,角色管理,利用角色,SQL Server管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。 SQL Server提供了用户通常管理工作的预定义服务器角色和数据库角色。,1、服务器角色,服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级来把具有SQL Server管理职能的用户划分为不同的用户组,每一组所具有的管理SQL Server的权限都是SQL Server内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。,七种常用的固定服务器角色,系统管理员:拥有SQL Server所有的权限许可。 服务器管理员:管理SQL Server服务器端的设置。 磁盘管理员:管理磁盘文件。 进程管理员:管理SQL Server系统进程。 安全管理员:管理和审核SQL Server系统登录。 安装管理员:增加、删除连接服务器,建立数据库复制以及管理扩展存储过程。 数据库创建者:创建数据库,并对数据库进行修改。,2、数据库角色,数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以使一个用户具有属于同一数据库的多个角色。 SQL Server提供了两种类型的数据库角色:即固定的数据库角色和用户自定义的数据库角色。,()固定的数据库角色,public:维护全部默认许可。 db_owner:数据库的所有者,可以对所拥有的数据库执行任何操作。 db_accessadmin:可以增加或者删除数据库用户、工作组和角色。 db_addladmin:可以增加、删除和修改数据库中的任何对象。 db_securityadmin:执行语句许可和对象许可。 db_backupoperator:可以备份和恢复数据库。,db_datareader:能且仅能对数据库中的任何表执行select操作,从而读取所有表的信息。 db_datawriter:能够增加、修改和删除表中的数据,但不能进行select操作。 db_denydatareader:不能读取数据库中任何表中的数据。 db_denydatawriter:不能对数据库中的任何表执行增加、修改和删除数据操作。,()用户自定义角色,创建用户定义的数据库角色就是创建一组用户,这些用户具有相同的一组许可。如果一组用户需要执行在SQL Server中指定的一组操作并且不存在对应的Windows NT组,或者没有管理Windows NT用户帐号的许可,就可以在数据库中建立一个用户自定义的数据库角色。,用户自定义的数据库角色有两种类型:即标准角色和应用程序角色。,标准角色通过对用户权限等级的认定而将用户划分为不用的用户组,使用户总是相对于一个或多个角色,从而实现管理的安全性。,标准角色和应用程序角色,应用程序角色是一种比较特殊的角色。当我们打算让某些用户只能通过特定的应用程序间接地存取数据库中的数据而不是直接地存取数据库数据时,就应该考虑使用应用程序角色。当某一用户使用了应用程序角色时,他便放弃了已被赋予的所有数据库专有权限,他所拥有的只是应用程序角色被设置的角色。,管理角色的方式,1. 使用企业管理器管理角色 2. 使用存储过程管理角色,1. 使用企业管理器管理角色,()管理服务器角色 打开企业管理器,展开指定的服务器,单击安全性文件夹,然后单击服务器角色图标,选择需要的选项,根据提示操作。,()管理数据库角色 在企业管理器中,展开指定的服务器以及指定的数据库,然后用右键单击角色图标,从快捷菜单中选择新建数据库角色选项,则出现数据库角色属性新建角色对话框,根据提示即可新建角色。,2. 使用存储过程管理角色,()管理服务器角色 在SQL Server中,管理服务器角色的存储过程主要有两个: sp_addsrvrolemember sp_dropsrvrolemember,系统存储过程sp_addsrvrolemember可以将某一登录帐号加入到服务器角色中,使其成为该服务器角色的成员。,其语法形式如下: sp_addsrvrolemember login,role,系统存储过程sp_dropsrvrolemember可以将某一登录者从某一服务器角色中删除,当该成员从服务器角色中被删除后,便不再具有该服务器角色所设置的权限。,其语法形式如下: sp_dropsrvrolemember loginame=login,rolename=role,sp_addrole:用来创建一个新的数据库角色 sp_addrole role,owner sp_droprole:用于删除一个数据库角色 sp_droprole role sp_helprole:显示当前数据库所有的数据库角色的所有信息 sp_helprole role,()管理数据库角色,sp_addrolemember:向数据库某一角色中添加数据库用户sp_addrolemember role,security_account sp_droprolemember:用来删除某一角色的用户 sp_droprolemember role,security_account sp_helprolemember:用于显示某一数据库角色的所有成员 sp_helprolemember role,()管理数据库角色,53,数据库系统概论 An Introduction to Database System 第四章 数据库安全性,54,数据库安全性,什么是数据库的安全性 数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。,55,第四章 数据库安全性,4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结,56,4.1 计算机安全性概论,什么是计算机系统安全性 为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。,返回,57,4.1.1计算机系统的三类安全性问题,三类计算机系统安全性问题 技术安全类 管理安全类 政策法律类,返回,58,4.1.2 安全标准简介,计算机以及信息安全技术方面的安全标准: TCSEC标准:(trusted computer system evaluation criteria) CC标准:(common criteria),59,4.1.2 安全标准简介,60,安全标准简介(续),TCSEC/TDI (trusted database interpretation)标准的基本内容 TCSEC/TDI,从四个方面来描述安全性级别划分的指标 安全策略 责任 保证 文档,61,TCSEC/TDI安全级别划分,TCSEC/TDI安全级别划分(7级),可靠 可信,62,安全标准简介(续),CC 提出国际公认的表述信息技术安全性的结构 把信息产品的安全要求分为 安全功能要求 安全保证要求,63,安全标准简介(续),CC文本组成 简介和一般模型:术语、概念、模型、保护轮廓(PP)、安全目标(ST) 安全功能要求:功能组件(135)、子类(66)、类(11) 安全保证要求:保证组件(74)、子类(26)、类(7),64,安全标准简介(续),CC评估保证级(Evaluation Assurance Level, EAL)划分,65,第四章 数据库安全性,4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结,66,图 计算机系统中的安全模型,4.2 数据库安全性控制,计算机系统中,安全措施是一级一级层层设置,67,数据库安全性控制概述(续),数据库安全性控制的常用方法 用户标识和鉴定 存取控制 自主存取控制 强制存取控制 视图 审计 密码存储 统计数据库的安全性,68,4.2 数据库安全性控制,4.2.1 用户标识与鉴别 4.2.2 存取控制 4.2.3 自主存取控制方法(DAC) 4.2.4 授权与回收 4.2.5 数据库角色 4.2.6 强制存取控制方法(MAC),返回,69,4.2.1 用户标识与鉴别,用户标识与鉴别(Identification & Authentication) 系统提供的最外层安全保护措施 常用方法 用户标识 口令,70,用户标识自己的名字或身份,用户名/口令 简单易行 口令容易被窃取 每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数进行计算 系统根据用户计算结果是否正确鉴定用户身份,返回,71,4.2.2 存取控制,存取控制机制的功能 存取控制机制的组成 定义存取权限 检查存取权限 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统,72,存取控制(续),常用存取控制方法 自主存取控制(Discretionary Access Control ,简称DAC) C2级(受控的存取保护,Controlled Access Protection) 灵活 强制存取控制(Mandatory Access Control,简称 MAC) B1级(B1标记安全保护,Labeled Security Protection) 严格,73,4.2.3 自主存取控制方法,通过 SQL 的 GRANT 语句和 REVOKE 语句实现 用户权限组成 数据对象 操作类型 定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作 定义存取权限称为授权,74,自主存取控制方法(续),权限类型 访问数据权限 SELECT,INSERT,UPDATE,DELETE,REFERENCES,ALL PRIVILEGES 修改数据库模式的权限 索引权限:创建删除索引 视图权限:创建删除视图 资源权限:创建、修改、删除关系,75,4.2.4 授权(Authorization)与回收,一、GRANT GRANT ON TO 用户/角色列表 WITH GRANT OPTION; 语义为:将对指定数据库元素的指定操作权限授予指定的用户,76,GRANT(续),发出GRANT: DBA 数据库对象创建者(即属主Owner) 拥有该权限的用户 按受权限的用户 一个或多个具体用户 PUBLIC(全体用户),77,WITH GRANT OPTION子句,WITH GRANT OPTION子句: 指定:可以再授予 没有指定:不能传播 不允许循环授权,78,例题,例1 把查询Student表权限授给用户U1 GRANT SELECT ON Student TO U1; 例2 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILEGES ON Student, Course TO U2, U3;,79,例题(续),例3 把对表SC的查询权限授予所有用户 GRANT SELECT ON SC TO PUBLIC; 例4 把查询Student表和修改学生学号的权限授给用户U4 GRANT UPDATE(Sno), SELECT ON Student TO U4; 对属性列的授权时必须明确指出相应属性列名,80,例题(续),例5 把对表SC中SNO,CNO的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT (SNO,CNO) ON SC TO U5 WITH GRANT OPTION;,81,传播权限,例6 GRANT INSERT (SNO,CNO) ON SC TO U6 WITH GRANT OPTION; 例7 GRANT INSERT (SNO,CNO) ON SC TO U7; 但U7不能再传播此权限。 例8 GRANT REFERENCES (CNO) ON C TO U6;,82,授权(Authorization)与回收(续),二、REVOKE REVOKE ON FROM CASCADE|RESTRICT,83,REVOKE(续),例8 把用户U4修改学生学号的权限收回 REVOKE UPDATE(Sno) ON Student FROM U4; 例9 收回所有用户对表SC的查询权限 REVOKE SELECT ON SC FROM PUBLIC;,84,REVOKE(续),例10 把用户U5对SC表的INSERT权限收回 REVOKE INSERT ON TABLE SC FROM U5 CASCADE ; 将用户U5的INSERT权限收回的时候必须级联(CASCADE)收回 系统只收回直接或间接从U5处获得的权限,85,4.2.5 数据库角色,数据库角色是被命名的一组与数据库操作相关的权限。 是权限的集合。 可为一组具有相同权限的用户创建一个角色 使用角色来管理数据库权限可以简化授权的过程。,86,数据库角色(续),一、角色的创建 CREATE ROLE 刚创建的角色是空的,没有任何内容,可用GRANT为角色授权。 二、给角色授权 GRANT ON TO 角色列表 DBA和用户可利用GRANT语句将权限授予某一个或几个角色。,87,数据库角色(续),三、将一个角色授予其他的角色或用户 GRANT TO, WITH ADMIN OPTION 四、角色权限的收回 REVOKE ON FROM CASCADE|RESTRICT,返回,88,数据库角色(续),例11 通过角色来实现将一组权限授予一个用户。 步骤如下: 1. 首先创建一个角色 R1 CREATE ROLE R1; 2. 然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限 GRANT SELECT,UPDATE,INSERT ON Student TO R1;,89,数据库角色(续),3. 将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限 GRANT R1 TO 王平,张明,赵玲; 4. 可以一次性通过R1来回收王平的这3个权限 REVOKE R1 FROM 王平;,90,自主存取控制缺点,可能存在数据的“无意泄露” 原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记 解决:对系统控制下的所有主客体实施强制存取控制策略,91,4.2.6 强制存取控制方法,基本思想 对于每个数据对象赋予一定的密级; 绝密、机密、秘密和公开 对每个用户赋予相应的级别,称为许可证级别; 系统运行时,采用以下两条原则: 用户只能查看比它级别低或同级的数据 用户只能修改和它同级的数据 主要为了防止较高级别用户将该级别的数据复制到较低级别的文件中,92,强制存取控制方法(续),强制存取控制的特点 MAC是对数据本身进行密级标记 无论数据如何复制,标记与数据是一个不可分的整体 只有符合密级标记要求的用户才可以操纵数据 从而提供了更高级别的安全性,93,第四章 数据库安全性,4.1 计算机安全性概述 4.2 数据库安全性控制 4.3 视图机制 4.4 审计(Audit) 4.5 数据加密 4.6 统计数据库安全性 4.7 小结,94,4.3 视图机制,视图机制把要保密的数据对无权存取这些数据的用户隐藏起来。 视图机制与授权机制配合使用: 首先用视图机制屏蔽掉一部分保密数据 视图上面再进一步定义存取权限,95,视图机制(续),例14建立计算机系学生的视图,把对该视图的SELECT权限授于王平 先建立计算机系学生的视图CS_Student CREATE VIEW CS_Student AS SELECT FROM Student WHERE Sdept=CS 在视图上进一步定义存取权限 GRANT SELECT ON CS_Student TO 王平,96,第四章 数据库安全性,4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结,97,4.4 审计,什么是审计 启用一个专用的审计日志(Audit Log),将用户对数据库的所有操作记录在上面 DBA可以利用审计日志中的追踪信息, 找出非法存取数据的人 C2以上安全级别的DBMS必须具有审计功能,98,第四章 数据库安全性,4.1 计算机安全性概论 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结,99,4.5 数据加密,数据加密 防止数据库中数据在存储和传输中失密的有效手段 加密的基本思想 把明文通过一定的变换(混拆

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论