数据库系统概论第4章数据库安全.ppt_第1页
数据库系统概论第4章数据库安全.ppt_第2页
数据库系统概论第4章数据库安全.ppt_第3页
数据库系统概论第4章数据库安全.ppt_第4页
数据库系统概论第4章数据库安全.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1,第4章 数据库安全,4.1 计算机安全性概论 4.2数据库安全性控制,2,9.1计算机安全性概论,数据库安全,指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏.,1.计算机系统的三类安全性问题.,计算机系统安全性:指为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等.,计算机系统安全性的分类:,(1)技术安全 (2)管理安全 (3)政策法律类安全,3,2.可信计算机系统评测标准,从四个方面来评测计算机系统的安全性: (1)安全策略 (2)责任 (3)保证 (4)文档,计算机系统的安全性等级:,D级:最小保护 C1级:自主安全保护 C2级:受控的存取保护 B1级:标记安全保护 B2级:结构化保护 B3级:安全域 A1级:验证设计,4,9.2 数据库安全性控制,9.2.1用户标识与鉴别,用户标识与鉴别:是指由系统提供一定的方式让用户标识 自己的名字或身份.每次用户进入系统时, 由系统进行核对,通过鉴定后才提供使用权.,5,常用的用户标识与鉴定方法: (1)用户名 (2)口令 (3)函数鉴定,例:用户A与系统约定的函数为f(x)=x*x+2; 则某次上机,若系统提供的随机数为3,则A经计算 后回答11,则可进入系统,否则拒绝进入系统.,9.2.2 存取控制,存取控制机制:确保只授权给有资格的用户访问数据库的 权限,同时令所有未被授权的人员无法接近 数据.,6,存取控制机制包括两部分: (1) 定义用户权限,并将用户权限登记到数据字典中,形成 安全规则. (2)合法权限检查,利用数据字典中的安全规则对用户的 请求进行检查.,两种存取控制机制:,自主存取控制方法(DAC),强制存取控制方法(MAC),7,9.2.3自主存取控制方法(DAC),自主存取控制:用户对于不同的数据对象有不同的存取权限, 不同的用户对同一对象也有不同的权限,而且 用户还可以将其拥有的存取权限转授给其他 用户.,SQL的自主存取控制,Grant Revoke,8,用户权限:,结构 (数据库),数据 (表或视图),数据 (属性列),Create database,Select Insert,update,delete All privileges,Select Insert,update,delete All privileges,结构 (表、视图),Create table,alter table Create view Create index,9,1.授权,Grant的语句格式: grant on to with grant option;,例子:把查询Student表的权限授给用户U1.,Grant select on table student to u1;,10,例子:说明以下语句完成的功能.,(1) grant all priviliges on table student,course to u2,u3;,(2) grant select on table sc to public;,(3) grant update(sno),select on table sc to u4;,(4)grant insert on table sc to u5; with grant option,(5)grant createtab on database S_C to u6;,11,2.收回权限,revoke的语句格式: revoke on from ;,例子:把U4修改学生学号的权限收回.,Revoke update(sno) on table student from u4;,12,例子:说明以下语句完成的功能.,(1)revoke select on table sc from public;,(2)revoke insert on table sc from u5 cascade;,13,3.创建用户,Sp_addlogin 用户名称, 用户密码 sp_addsrvrolemember 用户名称,dbcreator sp_grantdbaccess 用户名称 sp_addrolemember 数据库角色名称,用户名称,例子: (1)Sp_addlogin zgf, 123 (2)sp_addsrvrolemember zgf,dbcreator (3)在当前数据库(spj)中执行: sp_grantdbaccess zgf,zgfspj sp_addrolemember db_owner, zgfspj sp_droprolemember db_owner, zgfspj grant create table to zgfspj grant select on spj to zgfspj revoke select on spj to zgfspj grant create view to public,14,9.2.4强制存取控制方法(MAC),强制存取控制:每一个数据对象被标以一定的密级,每一个 用户也被授予某一个级别的许可证,对于任 意一个对象,只有具有合法许可证的用户才 可以存取.,主体:系统中的活动实体,包括用户和代表用户的各进程. 客体:系统中的被动实体,包括文件、基本表、索引、视图.,主体和客体的敏感度标记:绝密、机密、可信、公开等.,主体的敏感度标记称为许可证级别. 客体的敏感度标记称为密级.,15,强制存取控制方法(MAC):,要求许可证级别为Label的主体对任何客体存取时必须遵守以下规则: (1)仅当主体的许可证级别大于或等于客体的密级时,该主 体才能读取相应的客体. (2)仅当主体的许可证级别等于客体的密级时,该主体才能 写相应的客体.,例子:,主体A (机密),客体B (机密),客体C (绝密),客体D (公开),R/W,R,16,DAC+MAC安全检查示意图:,检查用户权限,检查用户的许可证级别和数据的密级,17,9.2.5 视图机制,视图机制:为不同的用户定义不同的视图,把数据对象限制 在一定的范围内,通过视图机制把要保密的数据 对无权存取的用户隐藏起来,对数据提供一定程 度的安全保护.,例子:李勇把查询Student中计算机系学生的权限授予王平.,(1)建立计算机系学生的视图CS-Student. create view CS-Student as select * from student where Sdept=CS; (2)授限 grant select on CS-Student to 王平;,18,9.2.6 审计,审计:把用户对数据库的所有操作自动记录下来放入审计 日志中,DBA可以利用审计跟踪的信息,重现导致数 据库现有状况的一系列事件,找出非法存取数据的人 、时间和内容.,9.2.7 数据加密,数据加密:根据一定的算法将原始数据变换为不可直接 识别的格式,从而使得不知道解密算法的人 无法获知数据的内容.,加密方法:,(1)替换方法 (2)置换方法 (3)替换方法+置换方法,19,9.3 统计数据库安全性,1.问题的提出,统计数据库:用户只能对聚集数据进行访问,而不能对单个 数据信息进行访问.,例子: (1)查询所有女高级程序员的人数. (2)查询所有女高级程序员的工资总额. 如果查询(1)的结果为1,则查询(2)的结果就是这位女高级 程序员的工资.,2.解决的方法,规定任何查询至少涉及N个以上的记录。,20,3.问题的提出,例子:如果用户A想知道用户B的工资,则可通过以下查询: (1)查询用户A与N名职工的总工资. (2)查询用户B与N名职工的总工资. 查询(1)的结果为R 查询(2)的结果为S 用户A已知自己的工资为P,4.解决的方法,规定任意两个查询的相交数据项不能超过M个。,用户B的工资为: S-(R-P),21,SQL Server的安全控制,22,一、数据库权限的种类及用户的分类 1.权限的种类 第一类是对数据库管理系统进行维护的权限; 第二类是对数据库中的对象和数据进行操作的权限; 第一种是对数据库对象的权限,包括创建、删除和修改数 据库对象; 第二种是对数据库数据的操作权,包括对表、视图数据的 增、删、改、查。 2.数据库用户的分类 数据库中的用户按其操作权限的大小可分为如下三类: (1)数据库系统管理员:具有一切权限。 (2)数据库对象拥有者:对其所拥有的对象具有一切权限。 (3)普通用户:只具有对数据库数据的增、删、改、查权。,23,二、 SQL Server的安全控制,一个用户如果要访问SQL Server数据库中的数据,他必须要经过三个认证过程: 第一个认证过程是身份验证,这时用登录账号来标识用户,身份 验证只验证用户连接到SQL Server数据库服务器的资格,即验证该用户是否具有连接到数据库服务器的“连接权”。 第二个认证过程是当用户访问数据库时,他必须具有对具体数据库的“访问权”,即验证用户是否是数据库的合法用户。 第三个认证过程是当用户操作数据库中的数据或对象时,他必须具有所要进行的操作的“操作权”,即验证用户是否具有操作许可。,24,SQL Server的用户有两种类型: Windows授权用户:来自于Windows的用户或组; SQL授权用户:来自于非Windows的用户,我们也将这种用户称为 SQL用户。 SQL Server为不同的用户类型提供有不同的安全认证模式: 1.Windows身份验证模式 Windows身份验证模式允许用户Windows NT或Windows 2000用户连接到SQL Server。 2.混合验证模式 混合验证模式表示SQL Server接受Windows授权用户和SQL授权用户。如果不是Windows操作系统的用户希望也能使用SQL Server,则应该选择混合验证模式。,25,3.设置验证模式 在企业管理器中设置SQL Server的身份验证模式的方法为: (1)在企业管理器的控制台上,在要设置验证模式的服务器名 上单击鼠标右键,然后在弹出的菜单上选择“属性” 。 (2)在窗口中选择“安全性”标签页,在窗口的“安全性” 成组框中的“身份验证”部分,有两个选项:“SQL Server和Windows”以及“仅Windows”。前一个选项代 表混合验证模式,后一个选项代表Windows验证模式。 (3)单击“确定”按钮。,26,27,三、管理SQL Server登录账号,内置系统帐号:,用户创建自己的登录帐号:,28,建立登录账号 使用企业管理器建立登录账号的步骤为: (1)展开“安全性”,单击“登录”节点。 (2)右击内容窗格中的空白处,从弹出式菜单中选择“新建登录”命令。 (3)设置如下选项: 在“名称”文本框中输入登录的账号名。 在“身份验证”区域中,有如下两个选择: “Windows身份验证”模式 “SQL Server身份验证”模式 在“数据库”下拉列表框中选择登录到SQL Server之后默认情况下要连接的数据库。 在“语言”列表框中选择显示给用户的信息所使用的默认语言。,29,例子:添加一个windows用户user; 添加一个SQL用户ss;,30,修改登录账号的属性 对于已经建立好的SQL Server登录账号,还可以对登录账号的密码等进行修改。 使用企业管理器修改登录密码的步骤为: 右击想要修改密码的登录账号,从弹出式菜单中选择“属性”命令,可以进行如下更改: 更改密码:在“常规”选项卡上,可以在“密码”文本框中输入新的密码。 更改默认数据库:在“数据库”列表框中选择一个新的数据库。 更改显示给用户所使用的语言:在“语言”列表框中选择一个新的语言。,31,删除登录账号 若不再需要某个登录账号,或者不再允许某个登录账号访问SQL Server,则可以将其删除。使用企业管理器删除登录账号的步骤为: (1)在控制台上依次单击“Microsoft SQL Servers”和“SQL Server组”左边的加号,然后单击服务器,展开树形目录。 (2)展开“安全性”节点,然后单击“登录”节点。 (3)在右边的内容窗格中,右击想要删除的登录账号,从弹出的菜单中选择“删除”命令或按Delete键。 (4)若确实要删除此登录账号, 则单击“是”,否则单击“否”,取消删除操作。,32,四、 管理数据库用户,用户具有了登录账号之后,他只能连接到SQL Server服务器上,但不具有访问任何用户数据库的能力,只有成为了数据库的合法用户后,才能访问此数据库。,建立数据库用户 使用企业管理器建立数据库用户的步骤为: (1)单击要建立数据库用户的数据库节点,右击“用户”,并在弹出的菜单上选择“新建数据库用户”命令。 (2)在“登录名”列表框中选择一个登录账号名。默认时“用户名”文本框的内容和用户选择的登录账号一样,用户可以在“用户名”文本框中输入一个新的数据库用户名,也可以采用与登录账号一样的用户名。 (3)单击“确定”关闭此窗口。,33,例子: 添加SQL用户ss为用户数据库st的用户。,34,每个用户都属于public角色,使用户具有一些默认权限.,35,删除数据库用户 从当前数据库中删除一个用户,就是去掉了登录账号和数据库用户之间的映射关系。删除数据库用户之后,登录账号仍然存在。 使用企业管理器删除数据库用户的过程为: (1)在控制台上,展开服务器组以及服务器。 (2)展开“数据库”节点,然后展开要删除用户的数据库。 (3)单击“用户”,然后在右边的内容窗格中右击想要删除的数据库用户,从弹出的菜单中选择“删除”命令。 (4)在弹出的确认窗口中,单击“是”,删除此用户。,思考:如果某个登录帐号已是某些数据库的用户,这个帐户能删除吗?,36,五、 管理权限,在SQL Server 2000 中,权限分为三种: 1对象权限 对象权限是指用户对数据库中的表、视图等对象的操作权,相当于数据库操作语言(DML)的语句权限, 2语句权限 语句权限相当于数据定义语言(DDL)的语句权限,这种权限专指是否允许执行下列语句:CREATE TABLE、CREATE VIEW等与创建数据库对象有关的操作。 3隐含权限 隐含权限是指由SQL Server预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限,隐含权限相当于内置权限,不需要再明确地授予这些权限。,37,权限的管理包含如下三个内容: 授予权限:允许用户或角色具有某种操作权。 收回权限:不允许用户或角色具有某种操作权,或者收回曾经授 予 的权限。 拒绝访问:拒绝某用户或角色具有某种操作权,既使用户或角色由 于继承而获得这种操作权,也不允许执行相应的操作。,对象权限 语句权限 隐含权限,38,1使用企业管理器管理数据库对象权限 (1)展开“数据库”并展开要设置权限的数据库,单击“用户” 节点。 (2)在内容窗格中右击要设置权限的数据库用户,并从弹出的菜 单中选择“所有任务”下的“管理权限”命令。可以进行如下设 置: 授予权限 拒绝权限 收回权限,39,例子: 为数据库st用户ss添加表student的有关权限。,40,2使用企业管理器管理语句权限 使用企业管理器管理数据库用户的语句权限的过程为: (1)展开“数据库”,右击要设置语句权限的数据库,并从弹出 的菜单中选择“属性”,在弹出的窗口中,选择“权限”选项 卡。 (2)在要设置的语句权限以及用户所对应的方框中单击鼠标, 使其中出现相应标记。,41,例子: 为数据库st用户ss添加语句权限。,例子:演示拒绝权限 、收回权限的区别。,42,3使用Transact-SQL语句管理对象权限 在Transact-SQL语句中,用于管理权限的语句有三个: GRANT语句:用于授权; REVOKE语句:用于收回权限; DENY语句:用于拒绝权限。,43,管理对象权限的语句的语法格式为: GRANT | DENY 对象权限名 , ON 表名 | 视图名 | 存储过程名 TO 数据库用户名 | 用户角色名 , REVOKE 对象权限名 , ON 表名 | 视图名 | 存储过程名 FROM 数据库用户名 | 用户角色名 , ,44,例1:为用户user1授予Student表的查询权。 GRANT SELECT ON Student TO user1 例2:为用户user1授予SC表的查询权和插入权。 GRANT SELECT,INSERT ON SC TO user1 例3:收回用户user1授予Student表的查询权。 REVOKE SELECT ON Student FROM user1 例4:拒绝用户user1对SC表的更改权。 DENY UPDATE ON SC TO user1,例子: 为数据库st用户ss授予表student的插入权限。,45,4使用Transact-SQL语句管理语句权限 管理语句权限的语句同管理对象权限的语句一样,也有GRANT、REVOKE和DENY三个,其语法格式为: GRANT | DE

温馨提示

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

最新文档

评论

0/150

提交评论