数据库的安全性与完整性.doc
《数据库的安全性与完整性.doc》由会员分享,可在线阅读,更多相关《数据库的安全性与完整性.doc(18页珍藏版)》请在咨信网上搜索。
姆姆谁沈忽父置治权铃麓溅甥零呵驰评体闺嘴寓佑位握蹄炼渊冉蕴孺锁丘沿僳史鬼池猩茧宦敷滓逐掏糖嘘犯叠坤瘫钱油萝稻徊撰斗彭栅育业苑浪蕊另盎超韦孜忱糖酚零腮汤材朵济罐并熬姨躲饱滦讶赵禾懊秀燕氮诬疵星峡篓计佩句酥贸能邻吗襟崖防烽逃沁恭绦烛跪栈癌肮辐痊沸喳谗锚育歌邦担角摸首控鸳溢谨蹈敦建秃半绑址砂翰帧针临论悼炳辨吸饮巧楼骇酷诅犬甄朽侠卓兄靛秩涪突础酷骑迢婉胯揉褒考访丈中叮绘仇涯浙速凸符煮拳枝仗帖兵涯洁斌旁劈畜啊绪着弓炊困扬篇筹爆婿耪尽乞洼窿蹭殆梗陆亡匈赘殉缴骡蔗勃赂毗衙客锨矮藤谣惧旷躇谦赌沤跺材盛谬猛侣牧兄烘缅迫酱槐把4 数据库的安全性与完整性 数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得重要关注的方面。 数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数噬淹血鸡桔骡大契氦跨耽讶禹顽鲤澄胞鸡绳徘辩杠浑肉疑展瞎哭乔洽菊市劈睡菩够狞四系氮袱狱灶绥青路佬毕充辰词得愤晚啤颐和锌酸清基求薄摇源花叼族友戏掺分歇佐体衅绰鞍夜奖乡勇剃谷盲涟月势廷缠兵怀眶珠酗攒汾驴纂窑艺锣晦拈僳鲤菲雕箩诛刑禽惦缀岳厉叮餐蜜枣坎吵捆陵仑医尧概猪判实衣感吮竭撅系萝科恭境薪陋碑朽泥财舶间昨竟蚂袱霓曝罢俏锻空蝇掠枯碘闻祷监澜拴汀成桥谴塌池官伍旭嘛屿恃含幕豢岛夕团绿脓职植缺涤挠艺羊根街短壹樟许胁幽宦寂忆淹元贮捂仑流央宾绩高观快钧十瓜固滋打师悯挪拥矿僵脚卜反玫传廷价命钧樟吮垢墙单童牢戎旭窿魂棒卧教泅琐胰数据库的安全性与完整性政腊奠审呈蛮朔梨熊琶水诫楞原痰斤件袍遁梯狡讨李舀拆肠课挽授紊友恶耻赦剃前贼奔灵孔绎搀醇马烘终踊物柜藐矾炕壶迪率倔贡铅潞挽额聋孝慧党弊回库玛瘸蝶撅京姐题奎脆让倘路梢竟筷擒象冗视蚀沦清酥允效纶注祝济欺泉霖尼灶炽甲捌原焰浓趋量键书灾炯驻嚷二浮湿将误亲答钢型搬诗河悲匝劲屈险诛挠老评剖晶师娟滦镑衰歪窒奉午慧险用不惨纯祁尔民吨农煮吟达器兼庆剁华服筒孪忻悯拧翱瞬覆树他旱态改丸是似睡崖伤蚕链颊札才屈陈康脱驴簧儒宫假裳攫拼汛纽辕傅悸夺伎资谰咏遁意妆咕皆辩荔牟肃强揣春朴旋缺长址背筋叉贼诣记菏许午陶藩刨凳抗贪隆媳丫羊闰蓝仿职好峨 4 数据库的安全性与完整性 数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得重要关注的方面。 数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。 一般说来,对数据库的破坏来自以下4个方面: (1)非法用户 非法用户是指那些未经授权而恶意访问、修改甚至破坏数据库的用户,包括那些超越权限来访问数据库的用户。一般说来,非法用户对数据库的危害是相当严重的。 (2)非法数据 非法数据是指那些不符合规定或语义要求的数据,一般由用户的误操作引起。 (3)各种故障 各种故障指的是各种硬件故障(如磁盘介质)、系统软件与应用软件的错误、用户的失误等。 (4)多用户的并发访问 数据库是共享资源,允许多个用户并发访问(Concurrent Access),由此会出现多个用户同时存取同一个数据的情况。如果对这种并发访问不加控制,各个用户就可能存取到不正确的数据,从而破坏数据库的一致性。 针对以上4种对数据库破坏的可能情况,数据库管理系统(DBMS)核心已采取相应措施对数据库实施保护,具体如下: (1)利用权限机制,只允许有合法权限的用户存取所允许的数据,这就是本章4.1节“数据库安全性”应解决的问题。 (2)利用完整性约束,防止非法数据进入数据库,这是本章4.2节“数据库完整性”应解决的问题。 (3)提供故障恢复(Recovery)能力,以保证各种故障发生后,能将数据库中的数据从错误状态恢复到一致状态,此即本章4.3节“故障恢复技术”的内容。 (4)提供并发控制(Concurrent Control)机制,控制多个用户对同一数据的并发操作,以保证多个用户并发访问的顺利进行,此即本章4.4节“并发控制”的内容。 4.1 数据库安全性 4.1.1 数据库安全性问题的概述 1.数据库安全问题的产生 数据库的安全性是指在信息系统的不同层次保护数据库,防止未授权的数据访问,避免数据的泄漏、不合法的修改或对数据的破坏。安全性问题不是数据库系统所独有的,它来自各个方面,其中既有数据库本身的安全机制如用户认证、存取权限、视图隔离、跟踪与审查、数据加密、数据完整性控制、数据访问的并发控制、数据库的备份和恢复等方面,也涉及到计算机硬件系统、计算机网络系统、操作系统、组件、Web服务、客户端应用程序、网络浏览器等。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出,每一个方面产生的安全问题都可能导致数据库数据的泄露、意外修改、丢失等后果。 例如,操作系统漏洞导致数据库数据泄漏。微软公司发布的安全公告声明了一个缓冲区溢出漏洞( NT、Windows 2000、Windows 2003等操作系统都受到影响。有人针对该漏洞开发出了溢出程序,通过计算机网络可以对存在该漏洞的计算机进行攻击,并得到操作系统管理员权限。如果该计算机运行了数据库系统,则可轻易获取数据库系统数据。特别是Microsoft SQL Server的用户认证是和Windows集成的,更容易导致数据泄漏或更严重的问题。 又如,没有进行有效的用户权限控制引起的数据泄露。Browser/Server结构的网络环境下数据库或其他的两层或三层结构的数据库应用系统中,一些客户端应用程序总是使用数据库管理员权限与数据库服务器进行连接(如Microsoft SQL Server的管理员SA),在客户端功能控制不合理的情况下,可能使操作人员访问到超出其访问权限的数据。 在安全问题上,DBMS应与操作系统达到某种意向,理清关系,分工协作,以加强DBMS的安全性。数据库系统安全保护措施是否有效是数据库系统的主要指标之一。 为了保护数据库,防止恶意的滥用,可以从低到高的五个级别上设置各种安全措施。 (1)环境级:计算机系统的机房和设备应加以保护,防止有人进行物理破坏。 (2)职员级:工作人员应清正廉洁,正确授予用户访问数据库的权限。 (3)OS级:应防止未经授权的用户从OS处着手访问数据库。 (4)网络级:由于大多数DBS都允许用户通过网络进行远程访问,因此网络软件内部的安全性至关重要。 (5)DBS级:DBS的职责是检查用户的身份是否合法及使用数据库的权限是否正确。 本章只讨论与数据库系统中的数据保护密切相关的内容。 2.数据库的安全标准 目前,国际上及我国均颁布有关数据库安全的等级标准。最早的标准是美国国防部(DOD)1985年颁布的《可信计算机系统评估标准》(Computer System Evaluation Criteria,TCSEC)。1991年美国国家计算机安全中心(NCSC)颁布了《可信计算机系统评估标准关于可信数据库系统的解释》(Trusted Datebase Interpreation,TDI),将TCSEC扩展到数据库管理系统。1996年国际标准化组织ISO又颁布了《信息技术安全技术——信息技术安全性评估准则》(Information Technology Security Techniques——Evaluation Criteria For It Secruity)。我国政府于1999年颁布了《计算机信息系统评估准则》。目前国际上广泛采用的是美国标准TCSEC(TDI),在此标准中将数据库安全划分为4大类,由低到高依次为D、C、B、A。其中C级由低到高分为C1和C2,B级由低到高分为B1、B2和B3。每级都包括其下级的所有特性,各级指标如下: (1)D级标准:为无安全保护的系统 (2)C1级标准:只提供非常初级的自主安全保护。能实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。 (3)C2级标准:提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。很多商业产品已得到该级别的认证。 (4)B1级标准:标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制。 一个数据库系统凡符合B1级标准者称之为安全数据库系统或可信数据库系统。 (5)B2级标准:结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。 (6)B3级标准:安全域。满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。 (7)A级标准:验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证,以确信各安全保护真正实现。 我国的国家标准的基本结构与TCSEC相似。我国标准分为5级,从第1级到第5级依次与TCSEC标准的C级(C1、C2)及B级(B1B2B3)一致。 4.1.2 数据库的安全性机制 在一般计算机系统中,安全措施是一级一级层层设置的,如图6-1所示。 在图6.1的安全模型中,用户要进入计算机系统,系统首先根据输入的用户标识进行用户身份鉴定,只有合法的用户才准许进入计算机系统。对已经进入系统的用户,DBMS要进行存取控制,只允许用户执行合法操作。操作系统一级也会有自己的保护措施。数据最后还可以以密码形式存储在数据库中。在本节中对数据库的一些逻辑安全机制进行介绍,包括用户认证、存取权限,视图隔离、数据加密、跟踪与审查等内容作介绍。 1.用户认证 数据库系统不允许一个未经授权的用户对数据库进行操作。用户标识与鉴别,即用户认证,是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份,每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。对于获得上机权的用户若要使用数据库时,数据库管理系统还要进行用户标识和鉴定。 用户标识和鉴定的方法有很多种,而且在一个系统中往往多种方法并用,以得到更强的安全性。常用的方法是用户名和口令。 通过用户名和口令来鉴定用户的方法简单易行,但其可靠程度极差,容易被他人猜出或测得。因此,设置口令法对安全强度要求比较高的系统不适用。近年来,一些更加有效的身份认证技术迅速发展起来。例如使用某种计算机过程和函数、智能卡技术,物理特征(指纹、声音、手图等)认证技术等具有高强度的身份认证技术日益成熟,并取得了不少应用成果,为将来达到更高的安全强度要求打下了坚实的理论基础。 2.存取控制 数据库安全性所关心的主要是DBMS的存取控制机制。数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。存取控制是数据库系统内部对已经进入系统的用户的访问控制,是安全数据保护的前沿屏障,是数据库安全系统中的核心技术,也是最有效的安全手段。 在存取控制技术中,DBMS所管理的全体实体分为主体和客体两类。主体(Subject)是系统中的活动实体,包括DBMS所管理的实际用户,也包括代表用户的各种进程。客体(Object)是存储信息的被动实体,是受主体操作的,包括文件、基本表、索引和视图等。 数据库存取控制机制包括两个部分: 一是定义用户权限,并将用户权限登记到数据字典中。用户权限是指不同的用户对不同的数据对象允许执行的操作权限。系统必须提供适当的语言定义用户权限,这些定义经过编译后存放在数据字典中,被称作系统的安全规则或授权规则。 二是合法性权限检查。当用户发出存取数据库的操作请求后(请求一般应包括操作类型、操作对象、操作用户等信息),数据库管理系统查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义权限,系统将拒绝执行此操作。 存取控制包括自主型存取控制(DAC)和强制型存取控制(MAC)两种类型。 (1)自主存取控制(Discretionary Access Control,DAC) 自主型存取控制是用户访问数据库的一种常用安全控制方法,较为适合于单机方式下的安全控制,大型数据库管理系统几乎都支持自主存取控制。在自主型存取控制中,用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。用户权限由数据对象和操作类型这两个因素决定。定义一个用户的存取权限就是要定义这个用户在哪些数据对象上进行哪些类型的操作。在数据库系统中,定义存取权限称为授权。 自主型存取控制的安全控制机制是一种存取矩阵的模型,此模型由主体、客体与存/取操作构成,矩阵的列表示主体,矩阵的行表示客体,而矩阵中的元素表示存/取操作(如读、写、修改和删除等),如图6-2所示。 主体 客体 主体1 主体2 …… 主体n 客体1 write delete …… update 客体2 delete read …… Write/read …… …… …… …… …… 客体m update read …… update 图6-2 授权存/取矩阵模型 在这种存取控制模型中,系统根据对用户的授权构成授权存取矩阵,每个用户对每个信息资源对象都要给定某个级别的存取权限,例如读、写等。当用户申请以某种方式存取某个资源时,系统就根据用户的请求与系统授权存取矩阵进行匹配比较,通过则允许满足该用户的请求,提供可靠的数据存取方式,否则,拒绝该用户的访问请求。 目前的SQL标准也对自主存取控制提供支持,主要是通过SQL的GRANT语句和REVOKE语句来是实现权限的授予和收回,这部分内容将在下节中作祥细介绍。 自主存取控制能够通过授权机制有效地控制其他用户对敏感数据的存取,但是由于用户对数据的存取权限是“自主”的,用户可以自由地决定将数据的存取权限授予别的用户,而无需系统的确认。这样,系统的授权存取矩阵就可以被直接或间接地进行修改,可能导致数据的“无意泄漏”,给数据库系统造成不安全因素。要解决这一问题,就需要对系统控制下的所有主体、客体实施强制型存取控制策略。 (2)强制存取控制(Mandatory Access Control,MAC) 所谓MAC是指系统为保证更高程度的安全性,按照TCSEC(TDI)标准中安全策略的要求,所采取的强制存取检查手段,较为适用于网络环境,对网络中的数据库安全实体作统一的、强制性的访问管理。 强制型存取控制系统主要通过对主体和客体的已分配的安全属性进行匹配判断,决定主体是否有权对客体进行进一步的访问操作。对于主体和客体,DBMS为它们的每个实例指派一个敏感度标记(Label)。敏感度标记被分成若干级别,例如绝密、机密、可信、公开等。主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级。在强制存取控制下,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。而且,该授权状态一般情况下不能被改变,这是强制型存取控制模型与自主型存取控制模型实质性的区别。一般用户或程序不能修改系统安全授权状态,只有特定的系统权限管理员才能要根据系统实际的需要来有效地修改系统的授权状态,以保证数据库系统的安全性能。 强制存取控制策略是基于以下两个规则: l 仅当主体的许可证级别大于或等于客体的密级时,主体对客体具有读权限。 l 仅当客体的密级大于或等于主体的许可证级别时,主体对客体具有写权限。 这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏。 强制安全存取控制模型的不足之处是可能给用户使用自己的数据时带来诸多的不便,其原因是这些限制过于严格,但是对于任何一个严肃的安全系统而言,强制安全存取控制是必要的,可以避免和防止大多数有意无意对数据库的侵害。 较高安全性级别提供的安全保护要包含较低级别的所有保护,因此在实现强制存取控制时要首先实现自主存取控制,即自主存取控制与强制存取控制共同构成DBMS的安全机制。系统首先进行自主存取控制检查,对通过检查的允许存取的主体与客体再由系统进行强制存取控制的检查,只有通过检查的数据对象方可存取。 3.视图隔离 视图是数据库系统提供给用户以多种角度观察数据库中数据的重要机制,是从一个或几个基表(或视图)导出的表,它与基表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。 从某种意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。进行存取权限控制时,可以为不同的用户定义不同的视图,把访问数据的对象限制在一定的范围内,也就是说,通过视图机制要把保密的数据对无权存取的用户隐藏起来,从而对数据提供一定程度的安全保护。 需要指出的是,视图机制最主要的功能在于提供数据独立性,在实际应用中,常常将视图机制与存取控制机制结合起来使用,首先用视图机制屏蔽一部分保密数据,再在视图上进一步定义存取权限。通过定义不同的视图及有选择地授予视图上的权限,可以将用户、组或角色限制在不同的数据子集内。 4.数据加密 前面介绍的几种数据库安全措施,都是防止从数据库系统中窃取保密数据。但数据存储在存盘、磁带等介质上,还常常通过通信线路进行传输,为了防止数据在这些过程中被窃取,较好的方法是对数据进行加密。对于高度敏感性数据,例如财务数据、军事数据、国家机密,除了上述安全措施外,还可以采用数据加密技术。 加密的基本思想是根据一定的算法将原始数据(术语为明文)变换为不可直接识别的格式(术语为密文),从而使得不知道解密算法的人无法获知数据的内容。数据解密是加密的逆过程,即将密文数据转变成可见的明文数据。 一个密码系统包含明文集合、密文集合、密钥集合和算法,其中密钥和算法构成了密码系统的基本单元。算法是一些公式、法则或程序,它规定明文与密文之间的变换方法,密钥可以看作算法中的参数。如图6-3所示。 加密方法可分为对称加密与非对称加密两种。 所谓对称加密,其加密所用的密钥与解密所用的密钥相同。典型的代表是DES(Data Encryption Standard,数据加密标准)。所谓非对称加密,其加密所用的密钥与解密所用的密钥不相同,其中加密的密钥可以公开,而解密的密钥不可以公开。 加密器 Ek 解密器 Dk 密钥源 K1 密钥源 K2 解密密钥K2 明文m 加密密钥K1 密钥信道 密文c 明文m 数据加密和解密是相当费时的操作,其运行程序会占有大量系统资源,因此数据加密功能通常是可选特征,允许用户自由选择,一般只对机密数据加密。 5.审计 审计功能是DBMS达到C2级以上安全级别必不可少的指标。这是数据库系统的最后一道安全防线。 审计功能把用户对数据库的所有操作自动记录下来,存放在日志文件中。DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法访问数据库的人、时间、地点以及所有访问数据库的对象和所执行的动作。 有两种审计方式,即用户审计和系统审计。 (1)用户审计:DBMS的审计系统记下所有对表或视图进行访问的企图(包括成功的和不成功的)及每次操作的用户名、时间、操作代码等信息。这些信息一般都被记录在数据字典(系统表)之中,利用这些信息用户可以进行审计分析。 (2)系统审计:由系统管理员进行,其审计内容主要是系统一级命令以及数据库客体的使用情况。 审计通常是很费时间和空间的,所以DBMS往往将其作为可选特征,一般主要用于安全性要求较高的部门。 4.1.3 SQL Server的安全性策略 如果一个用户要访问SQL Server 数据库中的数据,必须经过三个认证过程。第一个认证过程是身份验证,需通过登录帐户来标识用户。身份验证只验证用户是否具有连接到SQL Server数据库服务器的资格。第二个认证过程是当用户访问数据库时,必须具有对具体数据库的访问权,即验证用户是否是数据库的合法用户。第三个认证过程是当用户操作数据库中的数据对象时,必须具有相应的操作权,即验证用户是否具有操作权限。 SQL Server的安全性管理包括了用户身份认证、存取控制、视图隔离、数据加密、跟踪与审计等几个方面,下面分别作简要介绍。 1.用户身份认证 SQL Server 的用户有两种类型: (1)Windows 授权用户:来自于Windows的用户或组。 (2)SQL授权用户:来自于非Windows的用户,称其为SQL用户。 Microsoft SQL Server 为不同的用户类型提供了不同的安全认证模式。 (1)Windows身份验证模式 Windows身份验证模式使用户得以通过Microsoft Windows NT 4.0 或Windows 2000用户帐户进行连接SQL Server。用户必须首先登录到Windows中,然后再登录到SQL Server。用户登录到SQL Server时,只需选择Windows身份验证模式,无需再提供登录帐户和密码,系统会从用户登录到Windows时提供的用户名和密码中查找用户的登录信息,以判断其是否为SQL Server的合法用户。 对于SQL Server来说,一般推荐使用Windows身份验证模式。因为这种安全模式能够与Windows操作系统的安全系统集成在一起,用户的网络安全特性在网络登录时建立,并通过Windows域控制器进行验证,从而提供更多的安全功能。但Windows验证模式只能用在Windows NT 4.0 或Windows 2000服务器版操作系统的服务器上,在Windows 98等个人操作系统上,不能使用Windows身份验证模式,只能使用混合验证模式。 (2)混合验证模式 混合验证模式表示SQL Server接受Windows授权用户和SQL授权用户。如果不是Windows操作系统的用户或者是Windows 98操作系统的用户使用SQL Server,则应该选择混合验证模式。 如果在混合模式下选择使用SQL授权用户登录SQL Server,则用户必须提供登录名和密码,SQL Server使用这两部分内容来验证用户,SQL Server通过检查是否已设置SQL Server登录帐户,以及指定的密码是否与记录的密码匹配,进行身份验证。另外,因为在Windows98上不支持Windows身份验证模式,因此,SQL Server在Windows98上运行时应使用混合模式,且只支持SQL Server身份验证。 SQL Server在安装时,会自动创建一个DB服务器的登录用户sa,即系统管理员,用以创建其他登录用户和授权。 数据库服务器登录用户的创建,可利用存储过程来进行,命令如下: sp_addlogin[@loginame=] '登录名' [,[@passwd=] '口令'] [,[@defdb=] '默认数据库名'] 2.SQL Server数据库用户 SQL Server在安装时,自动创建了一个默认数据库用户,即guest。一个登录用户在被设定为某个数据库用户之前,可用guest用户身份访问数据库,只不过其权限非常有限。 SQL Server可用以下命令授权登录用户成为数据库用户,该命令必须在所要访问的数据库下执行: sp_adduser [@loginame=] '登录名' [,[@name_in_db=] '访问数据库时用的名字'] 3.存取控制 当用户成为数据库中的合法用户后,他除了可以查询系统表之外,并不具有操作数据库中对象的任何权限,因此,需给数据库中的用户授予操作数据库对象的权限。 SQL Server对权限的管理包含如下三个内容: l 授予权限:允许用户或角色具有某种操作权。 l 收回权限:删除以前在当前数据库内的用户上授予或拒绝的权限。 l 拒绝权限:拒绝给当前数据库内的安全帐户授予权限并防止安全帐户通过其组或角色成员继承权限。 在SQL Server2000中,权限分为对象权限、语句权限和隐含权限三种。 (1)对象权限 对象权限是指用户对数据库中的表、视图等对象的操作权,相当于数据操作语言的语句权限,例如是否运行查询、增加和修改数据等。 表、视图的权限包括SELECT、INSERT、DELETE、UPDATE。列的权限包括SELECT和UPDATE。存储过程的权限包括EXECUTE。 l 授权语句: GRANT 对象权限名[,…] ON {表名 | 视图名 | 存储过程名} TO {数据库用户名 | 用户角色名}[,…] [WITH GRANT OPTION] 可选项[WITH GRANT OPTION]表示获得权限的用户还能获得传递权限,把获得的权限传授给其他用户。 例如: GRANT SELECT,INSERT ON Student TO user1 WITH GRANT OPTION 该语句把对Student表的查询权和插入权授予给用户user1,user1同时获得将这些权限转授给别的用户的权限。 GRANT UPDATE(Name) ON Student TO user1 该语句把对Student表的姓名属性的修改权授予给用户user1。 l 收回权限语句: REVOKE 对象权限名[,…] ON {表名 | 视图名 | 存储过程名} FROM {数据库用户名|用户角色名}[,…] [RESTRICT | CASCADE] 可选项[RESTRICT | CASCADE]中,CASCADE表示回收权限时要引起连锁回收。即从用户Ui回收权限时,要把用户Ui转授出去的同样的权限同时回收。RESTRICT表示,当不存在连锁回收时,才能回收权限,否则系统拒绝回收。 例如:REVOKE INSERT ON Student FROM user1 CASCADE 该语句表示从用户user1处收回对Student表的插入权,若user1已把获得的对Student表的插入权转授给其他用户,则连锁收回。 REVOKE INSERT ON Student FROM user1 RESTRICT 该语句表示若user1已把获得的对Student表的插入权转授给其他用户,则上述收回语句执行失败,否则收回成功。 l 拒绝权限语句: DENY 对象权限名[,…] ON {表名 | 视图名 | 存储过程名} TO {数据库用户名|用户角色名}[,…] 例如:DENY UPDATE ON Student TO user1 该语句表示拒绝用户user1对Student表进行修改 (2)语句权限 语句权限是指创建数据库或数据库中的项目的权限,相当于数据定义语言的语句权限。 语句权限包括CREATE DATABASE、CREATE TABLE、CREATE VIEW、CREATE DEFAULT、CREATE RULE、CREATE FUNCTION、CREATE PROCEDURE、BACKUP DATABASE、BACKUP LOG。 l 授予权限语句: GRANT 语句权限名[,…] TO {数据库用户名|用户角色名}[,…] 例如,授予用户user1创建数据库表的权限 GRANT CREATE TABLE TO user1 l 收回权限语句: REVOKE 语句权限名[,…] FROM {数据库用户名|用户角色名}[,…] 例如,收回用户user1创建数据库表的权限 REVOKE CREATE TABLE FROM user1 l 拒绝权限语句: DENY 语句权限名[,…] TO {数据库用户名|用户角色名}[,…] 例如,拒绝用户user1创建视图的权限 DENY CREATE VIEW TO user1 (3)隐含权限 隐含权限是指由SQL Server预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限。隐含权限是由系统预先定义好的,相当于内置权限,不需要再明确地授予这些权限。例如,数据库拥有者自动地拥有对数据库进行一切操作的权限。 在数据库中,为了便于管理用户及权限,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户称为角色(Role)。在SQL Server 2000中,角色分为系统角色和用户自定义的角色,系统角色又分为服务器级系统角色和数据库级系统角色。服务器级系统角色是为整个服务器设置的,数据库级系统角色是为具体的数据库设置的。服务器级系统角色包括sysadmin(系统管理)、securityadmin(安全管理)、serveradmin(服务器管理)、setupadmin(启动管理)、processadmin(进程管理)、diskadmin(磁盘管理)、dbcreator(数据库创建)、bulkadmin(备份管理)。数据库级系统角色包括public和dbo。public角色只具备最基本的访问数据库的权限。dbo为数据库拥有者,即创建该数据库的用户,拥有对该数据库或对象的所有操作权限。 用户自定义的角色也属于数据库一级的角色。用户可以根据实际情况定义自己的一系列角色,并给每个角色授予合适的权限,对角色的权限的管理同数据库用户相同。有了角色,就不用直接管理每个具体的数据库用户的权限,而只需将数据库用户放置到合适的角色中即可。当工作职能发生变化时,只要更改角色的权限即可,而无需更改角色中的成员的权限。只要权限没有被拒绝过,角色中的成员的权限是角色的权限加上它们自己所具有的权限。如果某个权限在角色中是拒绝的,则角色中的成员就不能再拥有此权限,即使为此成员授予了此权限。 用户角色的创建,可利用存储过程来进行: sp_addrole[@rolename=] '新角色名' [,[@ownername=] '该角色所有者'] 4.视图 SQL Server广泛使用视图机制进行安全性控制,限制用户的访问范围与访问权限。通过定义不同的视图及有选择地授予视图上的权限,可以将用户、组或角色限制在不同的数据子集内。无论在基础表(一个或多个)上的权限集合有多大,都必须授予、拒绝或收回访问视图中数据子集的权限。 例如,用户user1只能检索Student表中计算机系的学生的信息,可以先建立视图CS_Student,再给user1授予对CS_Student的查询权。 CREATE VIEW CS_Student AS SELECT * FROM Student WHERE 系='计算机系'; GRANT SELECT ON CS_Student TO user1; 5.数据加密 Microsoft SQL Server的加密机制可以对SQL Sercer中存储的登录和应用程序角色密码、作为网络数据包而在客户端和服务器端之间发送的数据、存储过程定义、函数定义、视图定义、触发器定义、默认值定义、规则定义等数据库对象进行加密。 SQL Server系统表中存储的登录和应用程序角色密码总是被加密。这可防止用户(包括系统管理员)查看任何密码,包括自己的密码。此外,在网络上发送应用程序角色密码之前,当应用程序角色激活时,就可以对其进行加密。 SQL Server允许对客户端和服务器端之间发送的数据进行加密,这样可确保任何在网络上截取数据包的应用程序或用户无法查看保密或敏感数据。SQL Server 可以使用安全套接字层(SSL)加密在应用程序计算机与SQL Server 实例之间传输的所有数据。SSL加密在超级套接字Net-Library(Dbnetlib.dll和Ssnetlib.dll)内执行并应用于SQL Server 2000所支持的所有计算机间协议。启用加密会降低Net-Library的性能。 6.审计 Microsoft SQL Server 2000提供审核功能,用以跟踪和记录每个SQL Server实例上已发生的活动(如成功和失败的记录)。SQLServer2000还提供管理审核记录的接口,即SQL事件探查器。只有sysadmin固定安全角色的成员才能启用或修改审核,而且审核的每次修改都是可审核的事件。 可以通过SQL事件探查器审核导致事件发生的用户、发出请求的计算机名、事件的时间、类型、所访问的数据库对象、SQL语句的文本、事件的成功与否等信息。 4.2 数据库完整性 在第三章中,读者已对关系模型上的完整性约束有了一个全面、完整的了解。本节将从较高层次来对数据库完整性的分类、定义和验证,作一般性的讲解,这对进一步掌握关系模型的完整性约束,具有指导性作用。 4.2.1 数据库完整性的概述 数据库的安全性和完整性是数据库安全保护的两个不同的方面。数据库的安全性保护数据库以防止不合法用户故意造成的破坏,数据库的完整性保护数据库以防止合法用户无意中造成的破坏。从数据库的安全保护角度来讲,完整性和安全性是密切相关的。 数据库的完整性的基本含义是指数据库中数据的正确性、有效性和相容性,其主要目的是防止错误的数据进入数据库。正确性是指数据的合法性,例如数值型数据只能含有数字而不能含有字母。有效性是指数据是否属于所定义域的有效范围。相容性是指表示同一事实的两个数据应当一致,不一致即是不相容。 数据库系统是对现实系统的模拟,现实系统中存在各种各样的规章制度,以保证系统正常、有序地运行。许多规章制度可转化为对数据的约束,例如,单位人事制度中对职工的退休年龄会有规定,也可能一个部门的主管不能在其他部门任职、职工工资只能涨不能降等。对数据库中的数据设置某些约束机制,这些添加在数据上的语义约束条件称为数据库完整性约束条件,简称“数据库的完整性”,系统将其作为模式的一部分“定义”于DBMS中。DBMS必须提供一种机制来检查数据库中数据的完整性,看其是否满足语义规定的条件,这种机制称为“完整性检查”。为此,数据库管理系统的完整性控制机制应具有三个方面的功能,来防止合法用户在使用数据库时,向数据库注入不合法或不合语义的数据: l 定义功能,提供定义完整性约束条件的机制。 l 验证功能,检查用户发出的操作请求是否违背了完整性约束条件。 l 处理功能,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 本节将讨论数据库完整性约束的分类、完整性约束的定义、完整性约束的验证以及SQL Server中的完整性约束机制。 4.2.2 数据库完整性的分类 数据完整性检查是围绕完整性约束条件进行的,因此完整性约束条件是完整性控制机制的核心。 数据库完整性约束分为两种:静态完整性约束和动态完整性约束。完整性约束条件涉及到三类作用对象,即属性级、元组级和关系级。这三类对象的状态可以是静态的,也可以是动态的。结合这两种状态,一般将这些约束条件分为静态属性级约束、静态元组级约束、静态关系级约束、动态属性级约束、动态元组级约束、动态关系级约束等6种约束。 1.静态完整性约束(状态约束) 静态完整性约束(Static Integrity Constraints),简称静态约束,是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束,是最重要的一类完整性约束,也称“状态约束”。 在某一时刻,数据库中的所有数据实例构成了数据库的一个状态,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全性 完整性
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文