QH数据库安全性课件_第1页
QH数据库安全性课件_第2页
QH数据库安全性课件_第3页
QH数据库安全性课件_第4页
QH数据库安全性课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

1、1第四章 数据库安全性 问题的提出数据库的一大特点是数据可以共享但数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例:军事秘密、 国家机密、 新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、 医疗档案、 银行储蓄数据数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一什么是数据库的安全性数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。什么是数据的保密数据保密是指用户合法地访问到机密数据后能否对这些数据保

2、密。通过制订法律道德准则和政策法规来保证。第1页,共106页。2第四章 数据库安全性4.1 计算机安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 统计数据库安全性4.7 小结第2页,共106页。34.1 计算机安全性概述4.1.1 计算机系统的三类安全性问题 4.1.2 安全标准简介返回第3页,共106页。44.1.1 计算机系统的三类安全性问题 什么是计算机系统安全性为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。计算机安全涉及问题计算机系统本身的

3、技术问题计算机安全理论与策略、计算机安全技术管理问题安全管理、安全评价、安全产品法学计算机安全法律犯罪学计算机犯罪与侦察安全监察心理学第4页,共106页。5计算机系统的三类安全性问题(2) 技术安全类指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。管理安全类指由于管理不善导致的计算机设备和数据介质的物理破坏、丢失等软硬件意外故障以及场地的意外事故等安全问题政策法律类政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。返回第5页,共106页。

4、64.1.2 安全标准简介随着资源共享和网络技术应用的日益广泛和深入,特别是Internet的发展,计算机安全性问题越来越得到人们的重视,为此在计算机安全技术方面逐步发展建立了一套可信(Trusted)计算机系统的概念和标准。只有建立了完善的可信或安全标准,才能规范和指导安全计算机系统部件的生产,比较准确地测定产品的安全性能指标,满足民用和国防的需要。为降低进而消除对系统的安全攻击,各国引用或制定了一系列安全标准,最有影响的当推TCSEC (桔皮书)和CC。第6页,共106页。7第7页,共106页。8可信计算机系统评测标准1985年美国国防部(DoD)正式颁布 DoD可信计算机系统评估标准(简

5、称TCSEC或DoD85)TCSEC又称桔皮书TCSEC标准的目的提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做评估。给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。第8页,共106页。9可信计算机系统评测标准(2)1991年4月美国NCSC(国家计算机安全中心)颁布了可信计算机系统评估标准关于可信数据库系统的解释( Trusted Database Interpretation 简称TDI)TDI又称紫皮书。它将TCSEC扩展到数据库管理系统。TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。第9页,共

6、106页。10可信计算机系统评测标准(3)TDI/TCSEC标准的基本内容TDI与TCSEC一样,从四个方面来描述安全性级别划分的指标安全策略责任保证文档第10页,共106页。11可信计算机系统评测标准(4)R1 安全策略(Security Policy) R1.1 自主存取控制 (Discretionary Access Control,简记为DAC) R1.2 客体重用(Object Reuse) R1.3 标记(Labels) R1.4 强制存取控制(Mandatory Access Control,简记为MAC)第11页,共106页。12自主存取控制方法(1)大型数据库管理系统几乎都支

7、持自主存取控制,目前的SQL标准也对自主存取控制提供支持,这主要通过SQL 的GRANT语句和REVOKE语句来实现。用户权限是由两个要素组成的:数据对象和操作类型。定义一个用户的存取权限就是要定义这个用户可以在哪些数据对象上进行哪些类型的操作。在数据库系统中,定义存取权限称为授权(Authorization)。 用户权限定义中数据对象范围越小授权子系统就越灵活。例如上面的授权定义可精细到字段级,而有的系统只能对关系授权。授权粒度越细,授权子系统就越灵活,但系统定义与检查权限的开销也会相应地增大。 第12页,共106页。13自主存取控制方法(2)衡量授权子系统精巧程度的另一个尺度是能否提供与数

8、据值有关的授权。上面的授权定义是独立于数据值的,即用户能否对某类数据对象执行的操作与数据值无关,完全由数据名决定。反之,若授权依赖于数据对象的内容,则称为是与数据值有关的授权。 有的系统还允许存取谓词中引用系统变量,如一天中的某个时刻,某台终端设备号。这样用户只能在某台终端、某段时间内存取有关数据,这就是与时间和地点有关的存取权限。另外,我们还可以在存取谓词中引用系统变量。如终端设备号,系统时钟等,这就是与时间地点有关的存取权限,这样用户只能在某段时间内,某台终端上存取有关数据。 自主存取控制能够通过授权机制有效地控制其他用户对敏感数据的存取。但是由于用户对数据的存取权限是“自主”的,用户可以

9、自由地决定将数据的存取权限授予何人、决定是否也将“授权”的权限授予别人。在这种授权机制下,仍可能存在数据的“无意泄露”。 第13页,共106页。14强制存取控制方法 (1)所谓MAC是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。它不是用户能直接感知或进行控制的。MAC适用于那些对数据有严格而固定密级分类的部门,例如军事部门或政府部门。 在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。 主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视

10、图等等。对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。第14页,共106页。15强制存取控制方法 (2)敏感度标记被分成若干级别,例如绝密(Top Secret)、机密(Secret)、可信(Confidential)、公开(Public)等。主体的敏感度标记称为许可证级别(Clearance Level),客体的敏感度标记称为密级(Classification Level)。MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。 当某一用户(或一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则:

11、(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。第15页,共106页。16可信计算机系统评测标准(5)R2 责任(Accountability)R2.1 标识与鉴别(Identification & Authentication)R2.2 审计(Audit)R3 保证(Assurance)R3.1 操作保证(Operational Assurance)R3.2 生命周期保证(Life Cycle Assurance)第16页,共106页。17可信计算机系统评测标准(6)R4 文档(Document

12、ation)R4.1 安全特性用户指南(Security Features Users Guide)R4.2 可信设施手册(Trusted Facility Manual)R4.3 测试文档(Test Documentation)R4.4 设计文档(Design Documentation)第17页,共106页。18可信计算机系统评测标准(7) TCSEC/TDI安全级别划分安 全 级 别 定 义 A1验证设计(Verified Design) B3安全域(Security Domains) B2结构化保护(Structural Protection) B1标记安全保护(Labeled Sec

13、urity Protection)C2受控的存取保护(Controlled Access Protection)C1自主安全保护(Discretionary Security Protection) D最小保护(Minimal Protection)第18页,共106页。19可信计算机系统评测标准(8)四组(division)七个等级 D C(C1,C2) B(B1,B2,B3) A(A1)按系统可靠或可信程度逐渐增高各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。第19页,共106页。20可信计算机系统评测

14、标准(9)D级(最小保护)将一切不符合更高标准的系统均归于D组典型例子:DOS是安全标准为D的操作系统,DOS在安全性方面几乎没有什么专门的机制来保障。第20页,共106页。21可信计算机系统评测标准(10)C1级(自主安全保护)非常初级的自主安全保护能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。C2级(受控的存取保护)安全产品的最低档次提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色。典型例子 操作系统:Microsoft的Windows 20

15、00、数字设备公司的Open VMS VAX 6.0和6.1 数据库:Oracle公司的Oracle 7、Sybase公司的 SQL Server 11.0.6第21页,共106页。22可信计算机系统评测标准(11)B1级(标记安全保护)标记安全保护。“安全”(Security)或“可信的”(Trusted)产品。对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制,B1级别的产品才认为是真正意义上的安全产品。典型例子 操作系统:数字设备公司的SEVMS VAX Version 6.0、惠普公司的HP-UX BLS release 9.0.9+ 。 数据库:Ora

16、cle公司的Trusted Oracle 7、Sybase公司的Secure SQL Server version 11.0.6、Informix公司的Incorporated INFORMIX-OnLine / Secure 5.0第22页,共106页。23可信计算机系统评测标准(12)B2级(结构化保护)结构化保护建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。经过认证的B2级以上的安全系统非常稀少。典型例子 操作系统只有Trusted Information Systems公司的Trusted XENIX一种产品 标准的网络产品只有Cryptek Secure Co

17、mmunications公司的LLC VSLAN一种产品 数据库没有符合B2标准的产品第23页,共106页。24可信计算机系统评测标准(13)B3级(安全域保护)安全域。该级的TCB(受信任计算机库)必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。A1级(验证设计)验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。B2以上的系统还处于理论研究阶段。应用多限于一些特殊的部门如军队等。美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准。第24页,共106页。25可信计算机系统评测标准(

18、14)第25页,共106页。26可信计算机系统评测标准(15) 表示该级不提供对该指标的支持; 表示该级新增的对该指标的支持; 表示该级对该指标的支持与相邻低一级的 等级一样; 表示该级对该指标的支持较下一级有所增 加或改动。第26页,共106页。27公共标准CCCC是在之前各评估标准及具体实践基础上,通过相互总结和互相补充发展而来的。和早期的准则相比,CC具有结构开放、表达方式通用等特点。CC提出了目前国际上公认的表述信息技术安全性的结构,即把信息产品的安全要求分为安全功能要求和安全保证要求。安全功能要求用以规范产品和系统的安全行为,安全保证要求解决如何正确有效地实施这些功能。二者都以“类-

19、子类-组件”的结构表述,组件是安全要求的最小构成件。第27页,共106页。28CC的组成“简介和一般模型”,介绍CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架,CC的附录部分主要介绍“保护轮廓(Protection Profile,简称PP)”和“安全目标(Security Target,简称ST)”的基本内容。安全功能要求,列出了一系列的功能组件、子类和类,具体来说有11类、66个子类、135个组件组成。安全保证要求,有7个类、26个子类、74个组件组成。另外,第三部分中根据系统对安全保证要求的支持情况提出了评估保证级(ELA),并定义了保护轮廓PP和安全目标ST的评估标准,用

20、于对PP和ST的评估。三部分的有机结合具体体现在PP和ST中,CC提出的安全功能要求和安全保证要求都可以在具体的PP和ST中进一步细化和扩展。CC的具体应用也是通过PP和ST这两种结构来实现的。第28页,共106页。29CC与PP和ST的关系PP用于表达一类产品或系统的用户需求,是CC在某一领域的具体化(如OS PP、DBMS PP等)。ST是对特定的一种产品进行描述,参加CC评估的产品必须提供自己的ST。PP的编制有助于提高安全保护的针对性和有效性,ST在PP的基础上,将安全要求进一步具体化,解决安全要求的具体实现。通过PP和ST这两种结构,能够方便的将CC的安全性要求具体应用到信息产品的开

21、发、生产、测试、评估和信息系统的集成、运行、评估、管理中。除了PP和ST外,还一个重要的结构是包,包是组件的特定组合,用来描述一组特定的安全功能和保证要求。评估保证级(ELA)就是一包。第29页,共106页。30表4-2 CC评估保证级评估保证级定义TCSEC安全级别(近似相当)EAL1功能测试EAL2结构测试C1EAL3系统地测试和检查C2EAL4系统地设计、测试和复查B1EAL5半形式化设计和测试B2EAL6半形式化验证的设计和测试B3EAL7形式化验证的设计和测试A1返回第30页,共106页。314.2 数据库安全性控制4.2.0 数据库安全性控制概述4.2.1 用户标识与鉴别4.2.2

22、 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 角色4.2.6 强制存取控制方法返回第31页,共106页。324.2.0 数据库安全性控制概述非法使用数据库的情况用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;直接或编写应用程序执行非授权操作;通过多次合法查询数据库从中推导出一些保密数据,例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的工资,于是他:首先查询包括张三在内的一组人的平均工资; 然后查用自己替换张三后这组人的平均工资, 从而推导出张三的工资。破坏安全性的行为可能是无意的

23、,故意的,恶意的。第32页,共106页。33计算机系统中的安全模型 应用DBMSOS DB 低 高安全性控制层次 方法: 用户标识和鉴定 存取控制审计视图 操作系统 安全保护 密码存储 第33页,共106页。34数据库安全性控制概述(2)数据库安全性控制的常用方法用户标识和鉴定存取控制视图审计密码存储返回第34页,共106页。354.2.1 用户标识与鉴别(Identification &Authentication)系统提供的最外层安全保护措施基本方法系统提供一定的方式让用户标识自己的名字或身份;系统内部记录着所有合法用户的标识;每次用户要求进入系统时,由系统核对用户提供的身份标识;通过鉴定

24、后才提供机器使用权。用户标识和鉴定可以重复多次第35页,共106页。36用户标识自己的名字或身份用户名/口令简单易行,容易被人窃取每个用户预先约定好一个计算过程或者函数系统提供一个随机数用户根据自己预先约定的计算过程或者函数进行计算系统根据用户计算结果是否正确鉴定用户身份返回第36页,共106页。374.2.2 存取控制存取控制机制的功能存取控制机制的组成 定义存取权限,并将用户权限登记到数据字典中:在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。合法权限检查:对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,

25、确保他只执行合法操作。用户权限定义和合法权检查机制一起组成了DBMS的安全子系统第37页,共106页。38存取控制(2)常用存取控制方法自主存取控制(Discretionary Access Control ,简称DAC) C2级; 灵活。同一用户对于不同的数据对象有不同的存取权限不同的用户对同一对象也有不同的权限用户还可将其拥有的存取权限转授给其他用户强制存取控制(Mandatory Access Control,简称 MAC) B1级;严格。每一个数据对象被标以一定的密级每一个用户也被授予某一个级别的许可证对于任意一个对象,只有具有合法许可证的用户才可以存取返回第38页,共106页。394

26、.2.3 自主存取控制方法定义存取权限存取权限 存取权限由两个要素组成数据库对象操作类型对非关系系统中,用户只能对数据进行操作,存取控制的数据库对象也仅限于数据本身;而在关系系统中存取控制的对象不仅有数据本身,还有数据库模式。第39页,共106页。40关系数据库系统中的存取权限对象类型对象操作类型数据库模式、数据库Create schemaCreate database模式基本表Create tableAlter table视图Create view索引Create Index数据基本表和视图Select,insert,update,delete,references,all privileg

27、es数据属性列Select,insert,update,references,all privileges第40页,共106页。41自主存取控制方法(续)关系系统中的存取权限(续)例: 一张授权表 用户名 数据对象名 允许的操作类型 王 平 关系Student SELECT 张明霞 关系Student UPDATE 张明霞 关系Course ALL 张明霞 SC. Grade UPDATE 张明霞 SC. Sno SELECT 张明霞 SC. Cno SELECT第41页,共106页。42自主存取控制方法(续)检查存取权限对于获得上机权后又进一步发出存取数据库操作的用户DBMS查找数据字典,根

28、据其存取权限对操作的合法性进行检查若用户的操作请求超出了定义的权限,系统将拒绝执行此操作 授权粒度授权粒度是指可以定义的数据对象的范围它是衡量授权机制是否灵活的一个重要指标。授权定义中数据对象的粒度越细,即可以定义的数据对象的范围越小,授权子系统就越灵活。关系数据库中授权的数据对象粒度: 数据库、 表、属性列、 行。能否提供与数据值有关的授权反映了授权子系统精巧程度。第42页,共106页。43自主存取控制方法(续)实现与数据值有关的授权利用存取谓词存取谓词可以很复杂可以引用系统变量,如终端设备号,系统时钟等,实现与时间地点有关的存取权限,这样用户只能在某段时间内,某台终端上存取有关数据 例:规

29、定“教师只能在每年1月份和7月份星期一至星期五上午8点到下午5点处理学生成绩数据”。第43页,共106页。44自主存取控制方法(续)自主存取控制小结定义存取权限用户检查存取权限DBMS授权粒度数据对象粒度:数据库、表、属性列、行数据值粒度:存取谓词授权粒度越细,授权子系统就越灵活,能够提供的安全性就越完善。但另一方面,因数据字典变大变复杂,系统定义与检查权限的开销也会相应地增大。第44页,共106页。45自主存取控制方法(续)自主存取控制小结(续)优点能够通过授权机制有效地控制其他用户对敏感数据的存取缺点可能存在数据的“无意泄露”原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身

30、并无安全性标记。 解决:对系统控制下的所有主客体实施强制存取控制策略。返回第45页,共106页。464.2.4授权(authorization)与回收一、 SQL Server中的用户管理二、授权语句三、DENY语句四、收权语句五、创建数据库模式的权限第46页,共106页。47一、SQL Server中的用户管理用户管理概述角色概述在企业管理中的用户管理在T-SQL中的用户管理第47页,共106页。48用户管理概述用户在连接到 SQL Server 2000 时与标识符 (ID) 相关联。ID 是控制访问 SQL Server 系统的帐户。若不先指定有效ID,用户就不能连接到 SQL Serv

31、er。sysadmin 固定服务器角色成员定义 ID。登录ID 本身并不提供访问数据库对象的用户权限。一个登录ID 必须与每个数据库中的一个用户 ID 相关联后,用这个登录 ID 连接的人才能访问数据库中的对象。如果登录 ID 没有与数据库中的任何用户 ID 显式关联,就与 guest 用户 ID 相关联。如果数据库没有 guest 用户帐户,则该登录就不能访问该数据库,除非它已与一个有效的用户帐户相关联。sp_grantlogin 使用 Windows 身份验证授予 Windows网络帐户(组帐户或用户帐户)作为连接到 SQL Server 的 SQL Server 。sp_addlogin

32、 则使用 SQL Server 身份验证为 SQL Server 连接定义登录帐户。第48页,共106页。49角色概述角色是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易

33、在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员,操作比较容易。在SQL Server中有两种角色:固定服务器角色和数据库角色。第49页,共106页。50在企业管理器中管理用户展开服务器实例安全项中的登录项,右击,可以创建、删除一个用户登录,在定义一个登录或或登录属性对话框中可以改变登录所隶属的服务器角色和数据库角色,同时也可以改变登录的权限。右击安全项中的服务器角色中的一个角色,可以给该角色增加或删除成员。对着一个具体数据库中的库名或之中的用户右击,执行“新建数据库用户”命令,

34、可以为数据库增加一个安全ID,对着一个具体的安全ID右击可以删除一个安全ID或更改一个安全Id的权限。对着某库中的角色操作, 可以定义一个新角色、删除一个用户定义的角色、更新角色的权限和改变角色中的成员等。第50页,共106页。51在T-SQL中的用户管理(1)创建一个登录1. sp_addlogin创建新的登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例。语法: sp_addlogin loginame = login , passwd = password , defdb = database 缺省数据库是master2. Sp_grantlogin使

35、 Windows NT用户或组帐户得以使用 Windows 身份验证连接到 Microsoft SQL Server。语法: sp_grantlogin loginame = login第51页,共106页。52在T-SQL中的用户管理(2)删除一个登录1. sp_droplogin删除SQL Server登录。语法: sp_droplogin loginame = login2. Sp_revokelogin从 SQL Server中删除用 sp_grantlogin 或 sp_denylogin 创建的 Windows NT用户或组的登录项。语法: sp_revokelogin login

36、ame = login第52页,共106页。53在T-SQL中的用户管理(3)给数据库添加安全帐户1. sp_adduser为当前数据库中的新用户添加安全帐户。包括此过程是为了向后兼容。请使用 sp_grantdbaccess。语法: sp_adduser loginame = login , name_in_db = user , grpname = group 2. sp_grantdbaccess为SQL Server登录或Windows NT用户或组在当前数据库中添加一个安全帐户,并使其能够被授予在数据库中执行活动的权限。语法: sp_grantdbaccess loginame =

37、login第53页,共106页。54在T-SQL中的用户管理(4)给数据库删除安全帐户1. sp_dropuser从当前数据库中删除SQL Server用户或Windows NT 用户。提供 sp_dropuser 是为了向后兼容。使用 sp_revokedbaccess 删除用户。语法: sp_dropuser name_in_db = user2. sp_revokedbaccess从当前数据库中删除安全帐户。语法: sp_revokedbaccess name_in_db = name第54页,共106页。55在T-SQL中的用户管理(5)数据库角色的创建与删除1. sp_addrole

38、在当前数据库创建新的SQL Server角色。语法:sp_addrole rolename = role , ownername = owner 2.sp_droprole从当前数据库删除 SQL Server 角色。语法: sp_droprole rolename = role第55页,共106页。56在T-SQL中的用户管理(6)数据库角色成员的添加与删除1. sp_addrolemember 功能:将安全帐户作为当前数据库中现有数据库角色的成员进行添加。语法: sp_addrolemember rolename = role, membername = security_account2

39、. sp_droprolemember功能:从当前数据库中的角色中删除安全帐户。语法: sp_droprolemember rolename = role , membername = security_account第56页,共106页。57在T-SQL中的用户管理(7)服务器角色成员的添加与删除1. sp_addsrvrolemember功能:添加登录,使其成为固定服务器角色的成员。语法:sp_addsrvrolemember loginame = loginrolename = role2. sp_dropsrvrolemember功能:从固定服务器角色中删除SQL Server登录或

40、Windows NT 用户或组。语法:sp_dropsrvrolemember loginame = login , rolename = role第57页,共106页。58二、授权语句标准SQL中的管理员专用授权命令GRANT CONNEXT|RESOURCE|DBA TO 用户名 IDENTIFED BY 口令CONNECT表示DBA允许指定的用户具有连接到数据库的权力。RESOURCE表示允许用户建立自己的新关系模式。DBA表示将自己的特权授予指定的用户。SQL Server 2000中的管理员专用授权(语句授权) GRANT ALL | statement ,.n TO securit

41、y_account ,.n 可用statement包括 CREATE DATABASE CREATE DEFAULT CREATE FUNCTION CREATE PROCEDURE CREATE RULE CREATE TABLE CREATE VIEW BACKUP DATABASE BACKUP LOG 示例:grant create table to sun1 第58页,共106页。59授权语句(2)对象授权语句的一般格式: GRANT ,. ON , TO , WITH GRANT OPTION;发出该语句的是DBA和表的建立者(即表的属主)也可以是已经拥在该权限的用户。接受该权限的

42、用户可以是一个或多个,也可以是PUBLIC,即全部用户。如果指定了WITH GRANT OPTION子句,刚获得某种权限的用户还可以把这种权限授予其他人。SQL标准允许具有WITH GRANT OPTION的用户把相应权限或其子集授予其他用户,但不允许循环授权。第59页,共106页。60授 权语句(3)对象授权语句的完整格式 GRANT ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n ) | ON stored_procedure | extended_p

43、rocedure | ON user_defined_function TO security_account ,.n WITH GRANT OPTION AS group | role 第60页,共106页。61参数介绍(1/2)permission是当前授予的对象权限。当在表、表值函数或视图上授予对象权限时,权限列表可以包括这些权限中的一个或多个:SELECT、INSERT、DELETE、REFENENCES 或 UPDATE。列列表可以与 SELECT 和 UPDATE 权限一起提供。如果列列表未与 SELECT 和 UPDATE 权限一起提供,那么该权限应用于表、视图或表值函数中的所有

44、列。在存储过程上授予的对象权限只可以包括 EXECUTE。在标量值函数上授予的对象权限可以包括 EXECUTE 和 REFERENCES。为在 SELECT 语句中访问某个列,该列上需要有 SELECT 权限。为使用 UPDATE 语句更新某个列,该列上需要有 UPDATE 权限。为创建引用某个表的 FOREIGN KEY 约束,该表上需要有 REFERENCES 权限。为使用引用某个对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW,该对象上需要有 REFERENCES 权限。第61页,共106页。62参数介绍(2/2)WITH GRANT OPTION

45、表示给予了 security_account 将指定的对象权限授予其它安全帐户的能力。WITH GRANT OPTION 子句仅对对象权限有效。AS group | role 指当前数据库中有执行 GRANT 语句权力的安全帐户的可选名。当对象上的权限被授予一个组或角色时使用 AS,对象权限需要进一步授予不是组或角色的成员的用户。因为只有用户(而不是组或角色)可执行 GRANT 语句,组或角色的特定成员授予组或角色权力之下的对象的权限第62页,共106页。63示例(1/2)1. 在权限层次中授予对象权限 下例显示权限的优先顺序。首先,给 public 角色授予 SELECT 权限。然后,将特定

46、的权限授予用户 Mary、John 和 Tom。于是这些用户就有了对 authors 表的所有权限。 USE pubs GO GRANT SELECT ON authors TO public GO GRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom GO 第63页,共106页。64示例(2/2)2. 用 AS 选项授予权限 用户 Jean 拥有表 Plan_Data。Jean 将表 Plan_Data 的 SELECT 权限授予 Accounting 角色(指定 WITH GRANT OPTION 子句)。用户 Jill 是

47、Accounting 的成员,他要将表 Plan_Data 上的 SELECT 权限授予用户 Jack,Jack 不是 Accounting 的成员。因为对表 Plan_Data 用 GRANT 语句授予其他用户 SELECT 权限的权限是授予 Accounting 角色而不是显式地授予 Jill,不能因为已授予 Accounting 角色中成员该权限,而使 Jill 能够授予表的权限。Jill 必须用 AS 子句来获得 Accounting 角色的授予权限。 /* User Jean */ GRANT SELECT ON Plan_Data TO Accounting WITH GRANT

48、OPTION /* User Jill */ GRANT SELECT ON Plan_Data TO Jack AS Accounting 第64页,共106页。65三、DENY语句DENY语句:在安全系统中创建一项,以拒绝给当前数据库内的安全帐户授予权限并防止安全帐户通过其组或角色成员资格继承权限。语句权限语法: DENY ALL | statement ,.n TO security_account ,.n 对象权限语法: DENY ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | vi

49、ew ( column ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO security_account ,.n CASCADE CASCADE:指定拒绝来自 security_account 的权限时,也将拒绝由 security_account 授权的任何其它安全帐户。第65页,共106页。66四、收权语句标准SQL中管理员专用的权力回收 REVORK CONNECT|RESOURCE|DBA FROM 用户名SQL Server 2000中的语句授权回收 REVOKE ALL |

50、 statement ,.n FROM security_account ,.n 第66页,共106页。67收权语句(2)SQL Server 2000中的对象授权回收 REVOKE GRANT OPTION FOR ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO | FROM security_accoun

51、t ,.n CASCADE AS group | role 第67页,共106页。68参数(1/2)GRANT OPTION FOR指定要删除的 WITH GRANT OPTION 权限。在 REVOKE 中使用 GRANT OPTION FOR 关键字可消除 GRANT 语句中指定的WITH GRANT OPTION 设置的影响。用户仍然具有该权限,但是不能将该权限授予其他用户。如果要废除的权限原先不是通过 WITH GRANT OPTION 设置授予的,则忽略 GRANT OPTION FOR(若指定了此参数)并照例废除权限。如果要废除的权限原先是通过 WITH GRANT OPTION

52、设置授予的,则指定 CASCADE 和 GRANT OPTION FOR 子句,否则将返回一个错误。第68页,共106页。69参数(2/2)CASCADE指定删除来自 security_account 的权限时,也将删除由 security_account 授权的任何其它安全帐户。废除可授予的权限时使用 CASCADE。如果要废除的权限原先是通过 WITH GRANT OPTION 设置授予 security_account 的,则指定 CASCADE 和 GRANT OPTION FOR 子句;否则将返回一个错误。指定 CASCADE 和 GRANT OPTION FOR 子句将只废除通过

53、WITH GRANT OPTION 设置授予 security_account 的权限以及由 security_account 授权的其它安全帐户。第69页,共106页。70应用举例例1 把查询Student表权限授给用户U1 GRANT SELECT ON Student TO U1;例2 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILIGES ON Student, Course TO U2, U3;例3 把对表SC的查询权限授予所有用户 GRANT SELECT ON SC TO PUBLIC;第70页,共106页。71应用举例(2)例

54、4 把查询Student表和修改学生学号的权限授给用户U4 GRANT UPDATE(Sno), SELECT ON Student TO U4;例5 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON SC TO U5 WITH GRANT OPTION; 执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:例6 GRANT INSERT ON SC TO U6 WITH GRANT OPTION; 同样,U6还可以将此权限授予U7:例7 GRANT INSERT ON SC TO U7; 但U7不能再传播此权限。 U

55、5- U6- U7第71页,共106页。72应用举例(3)例8 DBA把在数据库S_C中建立表的权限授予用户U8GRANT CREATE TABLE TO U8;例9 把用户U4修改学生学号的权限收回REVOKE UPDATE(Sno)ON Student FROM U4;例10 收回所有用户对表SC的查询权限 REVOKE SELECT ON SC FROM PUBLIC;例11 把用户U5对SC表的INSERT权限收回REVOKE INSERT ON SC FROM U5;第72页,共106页。73小结:SQL灵活的授权机制DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同

56、的权限授予不同的用户。用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。所有授予出去的权力在必要时又都可以用REVOKE语句收回。返回第73页,共106页。744.2.5角色角色概述固定服务器角色固定数据库角色第74页,共106页。75角色概述角色是一个强大的工具,使您得以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工

57、作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。如果根据工作职能定义了一系列角色,并给每个角色指派了适合这项工作的权限,则很容易在数据库中管理这些权限。之后,不用管理各个用户的权限,而只须在角色之间移动用户即可。如果工作职能发生改变,则只须更改一次角色的权限,并使更改自动应用于角色的所有成员,操作比较容易。在SQL Server中有两种角色:固定服务器角色和数据库角色。第75页,共106页。76固定服务器角色第76页,共106页。77固定服务器角色描述固定服务器角色描述sys

58、admin可以在 SQL Server 中执行任何活动。serveradmin可以设置服务器范围的配置选项,关闭服务器。setupadmin可以管理链接服务器和启动过程。securityadmin可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。processadmin可以管理在 SQL Server 中运行的进程。dbcreator可以创建、更改和除去数据库。diskadmin可以管理磁盘文件。bulkadmin可以执行 BULK INSERT 语句。第77页,共106页。78固定服务器角色说明无法创建的固定服务器角色在服务器级别上定义,并存在于各数据库的外

59、部。若要将用户添加到固定服务器角色,用户必须具有 SQL Server 或 Windows NT 4.0 或 Windows 2000 登录帐户。固定服务器角色的任何成员都可以添加其它登录。身为 BUILTINAdministrators 组成员的 Windows NT 4.0 或 Windows 2000 用户自动成为 sysadmin 固定服务器角色成员。 可以从 sp_helpsrvrole 获得固定服务器角色的列表,可以从 sp_srvrolepermission 获得每个角色的特定权限。每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,但各个角色的作用域只是在

60、特定的数据库内。例如,如果 Database1 和 Database2 中都有叫 UserX 的用户 ID,将 Database1 中的 UserX 添加到 Database1 的 db_owner 固定数据库角色中,对 Database2 中的 UserX 是否是 Database2 的 db_owner 角色成员没有任何影响。 第78页,共106页。79固定数据库角色第79页,共106页。80固定数据库角色说明可以创建的固定数据库角色在数据库级别上定义,并存在于每个数据库中。可将任何有效的用户帐户(Windows NT 4.0 或 Windows 2000 用户或组,或 SQL Serve

温馨提示

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

评论

0/150

提交评论