数据库安全保护.ppt
《数据库安全保护.ppt》由会员分享,可在线阅读,更多相关《数据库安全保护.ppt(84页珍藏版)》请在三一办公上搜索。
1、2023/9/11,北京林业大学 软件教研室,1,第5章 数据库安全保护,2023/9/11,北京林业大学 软件教研室,2,5.1 数据库的安全性5.2 完整性控制5.3 并发控制与封锁5.4 数据库的恢复,2023/9/11,北京林业大学 软件教研室,3,5.1 数据库的安全性,5.1.1 数据库安全性的含义 数据库的安全性是指保护数据库以防止非法使用所造成的数据泄露、更改或破坏。安全性问题有许多方面:(1)法律、社会和伦理方面时问题。(2)物理控制方面的问题。(3)政策方面的问题。(4)运行方面的问题。(5)硬件控制方面的问题。(6)操作系统安全性方面的问题。(7)数据库系统本身的安全性方
2、面的问题。,2023/9/11,北京林业大学 软件教研室,4,5.1.2 安全性控制的一般方法,安全性控制是指要尽可能地杜绝所有可能的数据库非法访问。,图5-1 安全控制模型,2023/9/11,北京林业大学 软件教研室,5,安全性控制的一般方法 用户标识和鉴定 用户存取权限控制 定义视图 数据加密 审计(Audit),2023/9/11,北京林业大学 软件教研室,6,用户标识和鉴定 用户标识和鉴定是由系统提供一定的方式让用户标识自己的名字或身份,系统内部记录着所有合法用户的标识,每次用户要求进入系统时,由系统进行核实,通过鉴定后才提供机器的使用权。用户标识和鉴定的方法 用一个用户名或用户标识
3、符来标明用户的身份,系统以此来鉴别用户的合法性。用户标识符是用户公开的标识,它不足以成为鉴别用户身份的凭证。通过用户名和口令来鉴定用户的方法简单易行,但该方法在使用时,由于用户名和口令的产生和使用比较简单,也容易被窃取,因此还可采用更复杂的方法。,2023/9/11,北京林业大学 软件教研室,7,授权表,用户标识,数据对象,操作类型,用户存取权限控制 用户存取权限指的是不同的用户对于不同的数据对象允许执行的操作权限。在数据库系统中,定义用户存取权限称为授权。这些授权定义经过编译后以一张授权表的形式存放在数据字典中。,2023/9/11,北京林业大学 软件教研室,8,关系系统中的存取权限,202
4、3/9/11,北京林业大学 软件教研室,9,对于授权表,一个衡量授权机制的重要指标就是授权粒度,即可以定义的数据对象的范围,在关系数据库中,授权粒度包括关系、记录或属性。授权粒度越细,授权子系统就越灵活,能够提供的安全性就越完善。,2023/9/11,北京林业大学 软件教研室,10,数据加密加密的基本思想是根据一定的算法将原始数据(明文)加密成为不可直接识别的格式,数据以密文的形式存储和传输。加密方法:替换方法,该方法使用密钥将明文中的每一个字符转换为密文中的字符。转换方法,该方法将明文中的字符按不同的顺序重新排列。通常将这两种方法结合起来使用,就可以达到相当高的安全程度。,2023/9/11
5、,北京林业大学 软件教研室,11,审计 审计功能是一种监视措施,它跟踪记录有关数据的访问活动。审计追踪把用户对数据库的所有操作自动记录下来,存放在一个特殊文件中,即审计日志中。记录的内容一般包括:操作类型(如修改、查询等),操作终端标识与操作者标识,操作日期和时间,操作所涉及到的相关数据(如基本表、视图、记录、属性等),数据的前象和后象等。,2023/9/11,北京林业大学 软件教研室,12,5.1.3 SQL Server2000的数据安全性机制,为了实现安全性,SQL Server 2000对用户的访问进行两个阶段的检验:身份验证阶段(Authentication):身份验证机制决定了用户
6、能否连接(或登录)到SQL Server 2000服务器。权限许可确认阶段(Permission Validation):权限许可机制决定了经过了身份验证后的用户连接到SQL Server 2000服务器可以执行的具体操作,包括服务器上的操作和具体的数据库上的操作。,2023/9/11,北京林业大学 软件教研室,13,5.1.4 SQL Server2000的身份验证模式,Windows身份验证模式 在该验证模式下,SQL Server 2000使用Windows操作系统来对登录的账号进行身份验证,支持Windows操作系统的密码策略和锁写策略,账号和密码保存在Windows操作系统的账户数据
7、库中。Windows验证模式下主要有以下优点:(1)数据库管理员的工作可以集中在管理数据库方面,而不是管理用户账户。(2)Windows有着更强的用户账户管理工具。可以设置账户锁定、密码期限等。(3)Windows的组策略支持多个用户同时被授权访问SQL Server。如果网络中有多个SQL Server服务器,就可以选择通过Windows身份验证机制来完成。,2023/9/11,北京林业大学 软件教研室,14,TCP/IP Sockets,命名管道,SQL Server身份验证模式,Windows身份验证模式,混合身份验证模式混合身份验证模式允许以SQL Server身份验证模式或者Wind
8、ows身份验证模式来进行验证。混合验证模式具有以下优点:(1)创建了Windows之上的另外一个安全层次。(2)支持更大范围的用户,如非Windows客户、Novell网用户等。(3)一个应用程序可以使用单个的SQL Server登录账号和口令。,2023/9/11,北京林业大学 软件教研室,15,5.1.5 SQL Server的登录账号和服务器角色,在SQL Server中,账号有两种:一种是登录服务器的登录账号(Login Name),另外一种是使用数据库的用户账号(User Name)。查看服务器的登录账号 使用Enterprise Manager 进入Enterprise Manag
9、er,展开“SQL Server组”,找到所要连接的SQL Server服务器;展开该服务器对应的文件夹,再展开“安全性”文件夹,单击“登录”选项,即可看到系统创建的默认登录账号及已建立的其他登录账号。使用存储过程 EXEC sp_helplogins,2023/9/11,北京林业大学 软件教研室,16,创建服务器的登录账号 利用Enterprise Manage 利用存储过程 EXEC sp_addlogin 登录账号名称,密码,默认数据库名,使用的语言 例5-1 建立了一个名称为Mike的登录账号。EXEC sp_addlogin Mike,m1934,Teach,NULL例5-2 将Mi
10、ke的登录账号加入到数据库Teach中。EXEC sp_adduser Mike更改登录账号的属性 使用存储过程sp_password可改变登录账号的密码 EXEC sp_password 旧密码,新密码,登录账号名称 使用存储过程sp_addsrvrolemember可以将登录账号加入服务器的角色中 EXEC sp_addsrvrolemember 登录账号,服务器角色名称,2023/9/11,北京林业大学 软件教研室,17,删除登录账号 使用Enterprise Manager 使用存储过程 sp_droplogin 登录账号 SQL Server的服务器角色 角色(Role)是对权限集中
11、管理的一种机制,将不同的权限组合在一起就形成了一种角色。服务器角色是执行服务器级管理操作的用户权限的集合。服务器角色是SQL SERVER系统内置的,DBA不能创建服务器角色,只能将其他角色或用户添加到服务器角色中。默认的服务器角色列表,参见P188.注:属于Windows Administrators组的帐号自动被设置为sysadmin服务器角色。,2023/9/11,北京林业大学 软件教研室,18,5.1.6 SQL Server的数据库用户账号和数据库角色,数据库的用户账号用户账号要在特定的数据库内创建,并关联一个登录账号(当一个数据库的用户创建时,必须关联一个登录账号)。每个登录账号在
12、一个数据库中只能有一个用户账号,但每个登录账号可以在不同的数据库中各有一个用户账号。注意:master和tempdb数据库中的guest用户账号不能删除,而其他数据库中的guest用户账号可以删除。登录账号具有对某个数据库的访问权限,并不表示该登录账号对该数据库具有存取的权限。,2023/9/11,北京林业大学 软件教研室,19,查看数据库的用户账号 利用存储过程 EXEC sp_helpuser 创建数据库的用户账号 使用存储过程 sp_adduser 登录账号,用户账号,所属的数据库角色设置数据库用户账号的权限 对数据库对象的操作,具体含义如下SELECT:对表或者视图进行查询。INSER
13、T:在表或者视图中插入记录。UPDATE:对表或者视图中的数据进行修改。DELETE:删除表或者视图中的数据。EXEC:执行存储过程。DRI:可对表的外键加以限制,以完成表的参照完整性。,2023/9/11,北京林业大学 软件教研室,20,删除数据库用户账号 存储过程sp_dropuser 用户账号 数据库角色 数据库角色是对数据库对象操作的权限的集合。数据库角色可分为两种:固定的标准数据库角色(系统创建的)应用程序角色当我们打算让某些用户只能通过特定的应用程序间接地存取数据库中的数据而不是直接地存取数据库数据时,就应该考虑使用应用程序角色。,2023/9/11,北京林业大学 软件教研室,21
14、,2023/9/11,北京林业大学 软件教研室,22,创建新的数据库角色 sp_addrole 角色名,拥有者删除数据库角色 sp_droprole 角色名 创建数据库应用程序角色 sp_addapprole 应用程序角色名,密码 用户和角色的权限问题 用户权限继承角色的权限 用户分属不同角色,2023/9/11,北京林业大学 软件教研室,23,5.2 完整性控制,5.2.1 数据库完整性的含义 数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。数据库的完整性是指防止合法用户使用数据库时向数据库中加入不符合语义的数据。完整性措施的防范对象是不合语
15、义的数据。,2023/9/11,北京林业大学 软件教研室,24,5.2.2 完整性规则的组成,完整性规则主要由以下三部分构成。(1)触发条件:规定系统什么时候使用规则来检查数据。(2)约束条件:规定系统检查用户发出的操作请求违背了什么样的完整性约束条件。(3)违约响应:规定系统如果发现用户发出的操作请求违背了完整性约束条件,应该采取一定的动作来保证数据的完整性,即违约时要做的事情。,2023/9/11,北京林业大学 软件教研室,25,完整性规则从执行时间上可分为立即执行约束(Immediate Constraints)和延迟执行约束(Deferred Constrainsts)。立即执行约束是
16、指在执行用户事务过程中,某一条语句执行完成后,系统立即对此数据进行完整性约束条件检查。延迟执行约束是指在整个事务执行结束后,再对约束条件进行完整性检查,结果正确后才能提交。某一条语句执行完成后,系统立即对此数据进行完整性约束条件检查。,2023/9/11,北京林业大学 软件教研室,26,一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示 D(Data):代表约束作用的数据对象,可以是关系、元组和列三种对象;O(Operation):代表触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即执行还是延迟执行;A(Assertion):代表数据对象必须满
17、足的语义约束,这是规则的主体;C(Condition):代表选择A作用的数据对象值的谓词;P(Procedure):代表违反完整性规则时触发执行的操作过程。,2023/9/11,北京林业大学 软件教研室,27,完整性约束条件是完整性控制机制的核心。,例如,对于“学号(SNo)不能为空”的这条完整性约束中,D、O、A、C、P的含义分别如下:D:代表约束作用的数据对象为SNo属性;O:当用户插入或修改数据时需要检查该完整性规则;A:SNo不能为空;C:A可作用于所有记录的SNo属性;P:拒绝执行用户请求。,2023/9/11,北京林业大学 软件教研室,28,关系模型的完整性包括实体完整性,参照完整
18、性和用户定义完整性。对于违反实体完整性和用户定义完整性规则的操作一般都是采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单的拒绝执行,一般在接受这个操作的同时,执行一些附加的操作,以保证数据库的状态仍然是正确的。例如在删除被参照关系中的元组时,应该将参照关系中所有的外码值与被参照关系中要删除元组主码值相对应的元组一起删除。比如,要删除S关系中SNO=S1的元组,而SC关系中又有两个SNO=S1的元组。这时根据应用环境的语义,因为当一个学生毕业或退学后,他的个人记录从S关系中删除,选课记录也应随之从SC表中删除,所以应该将SC关系中两个SNO=S1的元组一起删除。,2023/9
19、/11,北京林业大学 软件教研室,29,5.2.3 完整性约束条件的分类5.2.3.1 从约束条件使用的对象分为值的约束和结构的约束1值的约束:即对数据类型、数据格式、取值范围等进行规定。(1)对数据类型的约束,包括数据的类型、长度、单位和精度等。例如,规定学生姓名的数据类型应为字符型,长度为8。(2)对数据格式的约束。例如,规定出生日期的数据格式为。(3)对取值范围的约束。例如,月份的取值范围为112,日期131。(4)对空值的约束。空值表示未定义或未知的值,它与零值和空格不同。有的列值允许空值,有的则不允许。例如,学号和课程号不可以为空值,但成绩可以为空值。,2023/9/11,北京林业大
20、学 软件教研室,30,2结构约束:即对数据之间联系的约束。数据库中同一关系的不同属性之间,应满足一定的约束条件,同时,不同关系的属性之间也有联系,也应满足一定的约束条件。常见的结构约束有如下四种:(1)函数依赖约束:说明了同一关系中不同属性之间应满足的约束条件。如:2NF,3NF,BCNF这些不同的范式应满足不同的约束条件。大部分函数依赖约束都是隐含在关系模式结构中的,特别是对于规范化程度较高的关系模式,都是由模式来保持函数依赖的。,2023/9/11,北京林业大学 软件教研室,31,(2)实体完整性约束:说明了关系键的属性列必须唯一,其值不能为空或部分为空。(3)参照完整性约束:说明了不同关
21、系的属性之间的约束条件,即外部键的值应能够在参照关系的主键值中找到或取空值。(4)统计约束,规定某个属性值与一个关系多个元组的统计值之间必须满足某种约束条件。例如,规定系主任的奖金不得高于该系的平均奖金的40%。,不得低于该系的平均奖金的20%。这里该系平均奖金的值就是一个统计计算值。其中,实体完整性约束和参照完整性约束是关系模型的两个极其重要的约束,被称为关系的两个不变性。统计约束实现起来开销很大。,2023/9/11,北京林业大学 软件教研室,32,5.2.3.2 从约束对象的状态分为静态约束和动态约束1静态约束静态约束是指对数据库每一个确定状态所应满足的约束条件,是反映数据库状态合理性的
22、约束,这是最重要的一类完整性约束。上面介绍的值的约束和结构的约束均属于静态约束。2动态约束动态约束是指数据库从一种状态转变为另一种状态时,新旧值之间所应满足的约束条件,动态约束反映的是数据库状态变迁的约束。例如,学生年龄在更改时只能增长,职工工资在调整时不得低于其原来的工资。,2023/9/11,北京林业大学 软件教研室,33,5.2.4 数据完整性的实施,声明式数据完整性 声明式数据完整性是将数据所需符合的条件融入到对象的定义中,这样SQL Server会自动确保数据符合事先制定的条件。声明式数据完整性的特点是:通过针对表和字段定义声明的约束,可使声明式数据完整性成为数据定义的一部分。使用约
23、束、默认值与规则实施声明式数据完整性。,2023/9/11,北京林业大学 软件教研室,34,程序化数据完整性如果所需符合的条件以及该条件的实施均通过所编写的程序代码完成,则这种形式的数据完整性称为程序化数据完整性。程序化数据完整性的特点是:程序化数据完整性可以通过相关的程序语言及工具在客户端或服务器端实施。SQL Server可以使用存储过程或触发器实施程序化数据完整性。综上所述,实施数据完整性的方法有5种:约束(Constraint)、默认值(Default)、规则(Rule)、存储过程(Stored Procedure)、触发器(Trigger)。,2023/9/11,北京林业大学 软件教
24、研室,35,5.2.5 规则,规则(Rule)就是数据库对存储在表中的列或用户自定义数据类型中的值的规定和限制。规则是单独存储的独立的数据库对象。规则与其作用的表或用户自定义数据类型是相互独立的,即表或用户自定义对象的删除、修改不会对与之相连的规则产生影响。规则和约束可以同时使用,表的列可以有一个规则和多个CHECK约束。规则与CHECK约束很相似。在ALTER TABLE和CREATE TABLE命令中使用的CHECK约束是更标准的限制列值的方法,但CHECK约束不能直接作用于自定义数据类型。,2023/9/11,北京林业大学 软件教研室,36,创建规则 CREATE RULE rule_n
25、ame AS condition_expression 例5-12 创建学生年龄规则。CREATE RULE age_ruleAS age=18 and age=50 查看规则 用存储过程sp_helptext查看规则 sp_helptext objname=name其中,objname=name字句指明对象的名称,用sp_helptext存储过程查看的对象可以是当前数据库中的规则、默认、触发器、视图、或未加密的存储过程。例5-13 用存储过程sp_helptext查看名称为“age_rule”的规则内容。EXEC sp_helptext age_rule,condition_expressi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全 保护
链接地址:https://www.31ppt.com/p-5985574.html