数据库的安全与保护.ppt
《数据库的安全与保护.ppt》由会员分享,可在线阅读,更多相关《数据库的安全与保护.ppt(47页珍藏版)》请在三一办公上搜索。
1、SQL Server数据库技术及应用教程,电子工业出版社同名教材配套电子教案,14.1 数据库的安全性14.2 数据库的完整性14.3 数据库的备份和恢复14.4 实训学籍管理系统数据库的安全与保护,第14章 数据库的安全与保护,14.1.1 数据库系统的安全性 数据库系统自身的安全性控制主要由数据库管理系统(DBMS)进行访问控制来实现。目前普遍采用的关系数据库系统,如SQL Server和Oracle等一般通过外模式或视图机制以及授权机制来进行安全性控制。1外模式或视图机制 外模式或视图都是数据库的子集,前面已经讲到它们可以提高数据的独立性,除此之外,因为对于某个用户来说,他只能接触到自己
2、的外模式或视图,这样可以将其能看到的数据与其它数据隔离开,所以它们是一种重要的安全性措施。2授权机制 授权是给予用户一定的权限,这种访问权限是针对整个数据库和某些数据库对象的某些操作的特权。,14.1 数据库的安全性,14.1.2 SQL Server 2008的安全机制 SQL Server 2008为SQL服务器提供两种安全验证模式,系统管理员可选择合适的安全验证模式。1SQL Server 2008的安全体系结构(1)操作系统的安全防线 在用户使用客户计算机通过网络实现对SQL Server服务器的访问时,用户首先要获得客户计算机操作系统的使用权。(2)服务器的安全防线 SQL Serv
3、er服务器的安全性是建立在控制服务器登录账号和口令的基础上的。(3)SQL Server数据库的安全防线 在用户通过SQL Server服务器的安全性检查以后,将直接面对不同的数据库入口。(4)SQL Server数据库对象的安全防线 数据库对象的安全性是核查用户权限最后一个安全等级。,14.1 数据库的安全性,14.1.2 SQL Server 2008的安全机制 2SQL Server 2008的身份验证模式 安全身份验证用来确认登录SQL Server的用户的登录帐号和密码的正确性,由此来验证该用户是否具有连接SQL Server的权限。SQL Server 2008有两种身份验证模式:
4、Windows验证模式和SQL Server验证模式。(1)Windows验证模式 用户登录Windows时进行身份验证,登录SQL Server时就不再进行身份验证。(2)SQL Server验证模式 在SQL Server验证模式下,SQL Server服务器要对登录的用户进行身份验证。当SQL Server在Windows XP或Windows 2003等操作系统上运行时,系统管理员设定登录验证模式的类型可为Windows验证模式和混合模式。,14.1 数据库的安全性,14.1.2 SQL Server 2008的安全机制 3设置SQL Server的安全验证模式 用户可以在SSMS中设
5、置验证模式,操作步骤如下。启动SSMS,右键单击要设置验证模式的服务器,从弹出的快捷菜单中选择“属性”菜单项。打开SQL Server“服务器属性”对话框,选择“安全性”选项页。在“服务器身份验证”选项栏中,可以选择要设置的验证模式,同时在“登录审核”中还可以选择跟踪记录用户登录时的哪种信息,例如登录成功或登录失败的信息等。在“服务器代理帐户”选项栏中设置当启动并运行SQL Server时,默认的登录者中哪一位用户。,14.1 数据库的安全性,14.1.3 用户和角色管理 SQL Server用户和角色分为两级:一种为服务器级用户和角色;另一种是数据库级用户和角色。1登录的管理 登录也称Log
6、in用户,即SQL服务器用户。服务器用户通过账号和口令访问SQL Server的数据库。SQL Server 2008有一些默认的登录,其中,Sa和BUILTIN/Administors最重要。Sa是系统管理员的简称,BUILTIN/Administors是Windows管理员的简称,它们是特殊的用户账号,拥有SQL Server系统上所有数据库的全部操作权限。,14.1 数据库的安全性,14.1.3 用户和角色管理 2数据库用户的管理 数据库中的用户账号和登录账号是两个不同的概念。一个合法的登录账号只表明该账号通过了Windows认证或SQL Server认证,不能表明其可以对数据库数据和对
7、象进行操作。一个登录账号总是与一个或多个数据库用户账号相对应,即一个合法的登录账号必须要映射为一个数据库用户账号,才可以访问数据库。SQL Server的任何一个数据库中都有两个默认用户:dbo(数据库拥有者)和(guest客户用户)。dbo用户即数据库拥有者,dbo在其所拥有的数据库中拥有所有的操作权限。dbo的身份可被重新分配给另一个用户,系统管理员sa可以作为他所管理系统的任何数据库的dbo用户。如果guest用户在数据库中存在,则允许任意一个登录用户作为guest用户访问数据库,其中包括那些不是数据库用户的SQL服务器用户。,14.1 数据库的安全性,14.1.3 用户和角色管理 3服
8、务器角色的管理 SQL Server管理者可以将某一组用户设置为某一角色,这样只要对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。登录账户可以被指定给角色,因此,角色又是若干账户的集合。角色又分为服务器角色和数据库角色两种。(1)服务器角色的基本概念 服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级来把具有SQL Server管理职能的用户划分为不同的用户组,每一组所具有的管理SQL Server的权限都是SQL Server内置的。服务器角色存在于各个数据库之中,要想加入用户,该用户必须有登录帐号以便加入到角色中。,14.1 数据库的
9、安全性,14.1.3 用户和角色管理 3服务器角色的管理(2)常用的固定服务器角色SQL Server 2008提供了八种常用的固定服务器角色,其具体含义如下所示:系统管理员(sysadmin):拥有SQL Server所有的权限许可;服务器管理员(Serveradmin):管理SQL Server服务器端的设置;磁盘管理员(diskadmin):管理磁盘文件;进程管理员(processadmin):管理SQL Server系统进程;安全管理员(securityadmin):管理和审核SQL Server系统登录;安装管理员(setupadmin):增加、删除连接服务器,建立数据库复制以及管理
10、扩展存储过程;数据库创建者(dbcreator):创建数据库,并对数据库进行修改。批量数据输入管理员(bulkadmin):管理同时输入大量数据的操作。,14.1 数据库的安全性,14.1.3 用户和角色管理 4数据库角色管理 数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以给一个用户授予属于同一数据库的多个角色。SQL Server提供了两种类型数据库角色:固定的数据库角色和用户自定义的数据库角色。(1)固定的数据库角色 固定的数据库角色是指SQL Server已经定义了这些角色所具有的管理、访问数据库的权限,而且SQL
11、 Server管理者不能对其所具有的权限进行任何修改。SQL Server中的每一个数据库中都有一组固定的数据库角色,在数据库中使用固定的数据库角色可以将不同级别的数据库管理工作分给不同的角色,从而有效地实现工作权限的传递。,14.1 数据库的安全性,14.1.3 用户和角色管理 4数据库角色管理(2)用户自定义数据库角色 创建用户定义的数据库角色就是创建一组用户,这些用户具有相同的一组许可。如果一组用户需要执行在SQL Server中指定的一组操作并且不存在对应的Windows组,或者没有管理Windows用户帐号的许可,就可以在数据库中建立一个用户自定义的数据库角色。用户自定义的数据库角色
12、有两种类型:即标准角色和应用程序角色。标准角色通过对用户权限等级的认定而将用户划分为不用的用户组,使用户总是相对于一个或多个角色,从而实现管理的安全性。所有的固定的数据库角色或SQL Server管理者自定义的某一角色都是标准角色。,14.1 数据库的安全性,14.1.4 权限管理 1权限的类型 在SQL Server中包括三种类型的权限:即对象权限、语句权限和预定义权限。(1)对象权限 对象权限表示对特定的数据库对象(即表、视图、字段和存储过程)的操作权限,它决定了能对表、视图等数据库对象执行哪些操作。(2)语句权限 语句权限表示对数据库的操作权限,也就是说,创建数据库或者创建数据库中的其他
13、内容所需要的权限类型称为语句权限。(3)预定义权限 预定义权限是指系统安装以后有些用户和角色不必授权就有的权限。,14.1 数据库的安全性,14.1.4 权限管理 2权限的管理权限的管理主要是完成对权限的授权、拒绝和回收。授予权限:允许某个用户或角色,对一个对象执行某种操作或语句。使用SQL语句GRANT来实现。拒绝权限:拒绝某个用户或角色对一个对象进行某种操作。使用SQL语句DENY实现。取消权限:即不允许某个用户或角色,对一个对象执行某个操作或语句。用SQL语句的REVOKE实现。其中,不允许和拒绝是不同的。不允许执行某个操作,可以通过间接授权来获得相应的权限,而拒绝执行某种操作,间接授权
14、无法起作用只有通过直接授权才能改变。,14.1 数据库的安全性,14.2.1 数据完整性的基本概念 1数据的完整性 数据的完整性是指数据的正确性和相容性。(1)实体完整性(Entity Integrity)实体完整性也称为行完整性,要求表中的每一行必须是唯一的,通过索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性可实现数据的实体完整性。(2)域完整性(Domain Integrity)域完整性也称为列完整性,是保证数据库中的数据取值的合理性。是指定一个数据集对某个列是否有效和确定是否允许为空值。(3)参照完整性(Referential Integrity)参照完整性又称
15、为引用完整性。参照完整性保证主表中的数据与从表(被参照表)中数据的一致性。,14.2 数据库的完整性,14.2.1 数据完整性的基本概念 2约束的类型 约束(Constraint)定义关于列中允许值的规则,是强制完整性的标准机制。使用约束优先于使用触发器、规则和默认。(1)PRIMARY KEY约束 主键(PRIMARY KEY)是表中一列或多列的组合,其值能唯一地标识表中的每一行,通过它可以强制表的实体完整性。(2)CHECK约束 CHECK约束用于限制输入到一列或多列的值的范围,从逻辑表达式判断数据的有效性。(3)DEFAULT约束(4)FOREIGN KEY 约束(5)UNIQUE约束,
16、14.2 数据库的完整性,14.2.2 实体完整性的实现 1使用T-SQL语句创建PRIMARY KEY约束或UNIQUE约束使用T-SQL语句设置PRIMARY KEY约束的语法形式如下:CONSTRAINT constraint_name PRIMARY KEY CLUSTERED|NONCLUSTERED(column_name,n)使用T-SQL语句设置UNIQUE约束的语法形式如下:CONSTRAINT constraint_name UNIQUE CLUSTERED|NONCLUSTERED(column_name,n),14.2 数据库的完整性,14.2.2 实体完整性的实现【案
17、例14-17】创建表StudentOne,并对学号字段Student_No创建PRIMARY KEY约束,对姓名字段Student_Name定义UNIQUE约束。USE StudentManagementGOCREATE TABLE StudentOne(Student_No char(6)NOT NULL CONSTRAINT PK_StudentOne_StudentNo PRIMARY KEY,Student_Name char(8)NOT NULL CONSTRAINT UK_StudentOne_StudentName UNIQUE,Student_Sex char(2)NULL,S
18、tudent_Birthday date NULL,Student_ClassNo char(6)NULL,Student_Telephone varchar(13)NULL,Student_Email varchar(15)NULL,Student_Address varchar(30)NULL),14.2 数据库的完整性,14.2.2 实体完整性的实现 2使用T-SQL语句删除PRIMARY KEY约束或UNIQUE约束删除PRIMARY KEY约束或UNIQUE约束需要使用ALTER TABLE的DROP子句。语法格式:ALTER TABLE table_name DROP CONSTR
19、AINT constraint_name,.n【案例14-18】删除表StudentOne中创建的PRIMARY KEY约束和UNIQUE约束。在查询窗口中输入如下T-SQL语句:ALTER TABLE StudentOneDROP CONSTRAINT PK_StudentOne_StudentNo,UK_StudentOne_StudentNameGO,14.2 数据库的完整性,14.2.3 域完整性的实现 域完整性主要由用户定义的完整性组成,通常使用有效性检查强制域完整性。1CHECK约束 CHECK约束实际上是字段输入内容的验证规则,表示一个字段的输入内容必须满足CHECK约束的条件,
20、若不满足,则数据无法正常输入。(1)使用T-SQL语句创建CHECK约束用户可以在创建表或修改表的同时定义CHECK约束。其语法形式如下:CONSTRAINT constraint_name CHECK NOT FOR REPLICATION(logical_expression),14.2 数据库的完整性,14.2.3 域完整性的实现【案例14-19】修改表StudentOne,对性别字段Student_Sex加上CHECK约束,只能包含“男”或“女”;对出生日期字段Student_Birthday加上CHECK约束,要求出生日期必须大于1985年1月1日。操作步骤如下。在SSMS中单击“新
21、建查询”按钮新建一个查询编辑器窗口。在查询窗口中输入如下T-SQL语句:USE StudentManagementGOALTER TABLE StudentOneADD CONSTRAINT CK_Student_StudentSex CHECK(Student_Sex IN(男,女),CONSTRAINT CK_Student_StudentBirthday CHECK(Student_Birthday1985-01-01)GO,14.2 数据库的完整性,14.2.3 域完整性的实现(2)使用T-SQL语句删除CHECK约束使用ALTER TABLE语句的DROP子句可以删除CHECK约束。
22、其语法格式如下:ALTER TABLE table_name DROP CONSTRAINT check_name【案例14-20】删除表StudentOne中出生日期字段的CHECK约束。在查询窗口中输入如下T-SQL语句:USE StudentManagementGOALTER TABLE StudentOneDROP CONSTRAINT CK_Student_StudentBirthdayGO,14.2 数据库的完整性,14.2.3 域完整性的实现 2DEFAULT约束DEFAULT约束也是强制实现域完整性的一种手段,定义DEFAULT约束需要注意:表中的每一列都可以包含一个DEFAU
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 安全 保护

链接地址:https://www.31ppt.com/p-5985692.html