《数据库保护》PPT课件.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《数据库保护》PPT课件.pptx》由会员分享,可在线阅读,更多相关《《数据库保护》PPT课件.pptx(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章要求本章要求理解:事务处理与并发控制、数据库恢复及其实现 掌握:数据库系统安全性、数据完整性、SQL Server 2005数据库的备份与还原 重点内容:数据库系统安全性、数据完整性教学难点:数据完整性 所谓数据库的安全性是指保护数据库以防止非法使用数据库所造成的数据泄密、更改或破坏。数据库系统的安全性是评价数据库系统性能的主要指标之一。1.安全性基本概念数据库系统的安全性建立在计算机系统安全性的基础上。数据库系统安全性可以由多种方式实现借助于计算机系统的安全性来保护数据库安全通过用户程序来识别或验证进入数据库系统的用户的合法性通过外部程序以控制对数据的合法操作安全性基本概念任何的数据库管
2、理系统,对于想要进入数据库系统的用户将会通过登录管理进行身份验证,只有合法用户才会被允许进入.对于已进入系统的用户,数据库管理系统还要通过用户管理、角色管理、权限管理进行存取控制,以允许合法用户只执行授权的操作。数据库安全管理涉及以下安全技术:用户标识和鉴定、存取控制、视图和密码存储。2.数据库安全管理机制用户标识用户标识是数据库安全性管理中最外层的安全保护,它由系统提供一定的方式让用户标识自己的身份。常用方法有:用户名:系统提供一定方法以让用户来标识自己的名字或身份口令:系统进行核实以鉴别用户身份,只有通过鉴别后的用户才允许进入数据库系统。一般可对数据库的用户分为四类:系统用户(DBA),数
3、据对象的属主(Owner),一般用户,公共用户(Public)。数据库安全管理机制权限管理用户使用数据库的方式称为权限。通过数据库系统验证的合法用户,再通过权限设置与管理,可以获得访问数据的特权。特权包括:读数据权限,插入数据权限,修改数据权限,删除数据权限等。数据库安全管理机制数据库角色在一些商用数据库管理系统中,将经过命名的一组与数据库操作相关的权限集合称之为数据库角色,使用角色来管理数据库权限可以简化授权过程。在SQL Server 2005中,首先创建角色,然后再给角色授权。数据库安全管理机制存取控制当用户发出存取数据库的操作请求后,数据库管理系统会根据安全规则进行合法权限检查,若用户
4、的请求超出了所定义的权限,系统将拒绝执行该项操作。用户的权限定义和合法性检查机制构成了数据库管理系统的安全子系统。3.视图、审计与数据加密视图用于保障数据库安全性审计数据加密4.SQL Server 2005新增机制登录用户用户和架构的分离目录安全性模块化执行上下文粒度化的权限控制口令策略的增强5.SQL Server 2005的登录和用户登录是SQL Server实例层的安全模型,若要连接到某个数据库实例,必须要有能够连接到该数据库实例的登录账号。用户是数据库层的对象,当通过登录连接到某个数据库实例时,须为数据库指明合适的用户,用于操作数据库对象。一个合法的登录账号仅能表明该账号通过了WIN
5、DOWS或SQL Server的认证,并不表示该账号可以对数据库对象可以进行某种或某些操作。一个登录账号总是和一个或多个数据库用户相对应。创建登录CREATE LOGIN login_nameWITH|FROM:=WINDOWSWITH,|CERTIFICATE cert_name|ASYMMETRIC KEY asym_key_name:=PASSWORD=passwordHASHEDMUST_CHANGE,创建登录:=SID=sid|DEFAULT DATABASE=database|DEFAULT LANGUAGE=language|CHECK_EXPIRATION=ON|OFF|CHE
6、CK_POLICY=ON|OFFCREDENTIAL=credential_name:=DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language创建登录示例创建登录test01,其口令为“123”。CREATE LOGIN test01 WITH PASSWORD=123创建用户CREATE USER User_nameFOR|FROMLOGIN login_name|CERTIFICATE cert_name|ASYMMETRIC KEY asym_key_name|WITHOUT LOGINWITH DEFAULT_SCHEMA=schema_
7、name创建用户示例为数据库TEACHING_MIS创建用户test01,所使用的SQL语句为:USE TEACHING_MISGOCREATE USER test01CREATE USER user01_stu FOR LOGIN test01用户与架构的分离(自学)在ANSI SQL99就已经制定了架构(Schema)的规范,用以区分各数据库内的对象,如数据表、视图表、存储过程、自定义函数等等,所以这些数据对象的两节名称(two-part name)形式为SchemaName.ObjectName SQL Server 2005中用户和架构已经分离,也就是说,可能创建新的架构以管理这些不同
8、的程序以及专用的某些数据表。用户与架构的分离所谓SQL Server 2005中提供架构的定义与用户分开,是指当在数据库级别创建用户时,可以指定该账号默认的架构(Default Schema),如果没有指定,则账号的默认架构为主dbo,这样的设计是为了向前兼容。由于对象归属在架构之下,通过赋予账号是否有权限访问架构将可以避免上述的问题。用户与架构的分离用户账号和架构分离具有以下的作用通过设置架构的拥有者是角色(Role)或Windows的组(Group),可以让多个账号同时有权访问该架构。让用户自建对象时,有较大的弹性。而赋予权限时可以在架构级别,也可以在对象自身。当删除用户账号时,不必更改该
9、账号所建对象的名称与拥有者。前端应用程序也不必改写与重新测试。创建架构的语法CREATE SCHEMA schema_name_clause,schema_name_clause:=schema_name|AUTHORIZATION owner_name|schema_name AUTHORIZATION owner_nameschema_element:=table_definition|view_difinition|grant_statement|revoke_statement|deny_statement创建架构的语法示例在数据库TEACHING_MIS中创建由USER01拥有的包含
10、表TEST01的名为SCOURES的架构。为体验用户和架构分离所带来的优越性,首先创建2个登录LOGIN1、LOGIN2和2个属于TEACHING_MIS数据库的用户USER01与USER02,并让它们分别与上面所创建的登录相关联,其所使用的SQL语句为:创建架构的语法CREATE LOGIN LOGIN1 WITH PASSWORD=LOG123CREATE LOGIN LOGIN2 WITH PASSWORD=LOG456USE TEACHING_MISGOCREATE USER USER01 FOR LOGIN LOGIN1;USE TEACHING_MISGOCREATE USER U
11、SER02 FOR LOGIN LOGIN2;创建架构的语法然后为用户USER01指定其架构,同时创建属于该架构的数据表TEST01,所使用的SQL语句如下所示:USE TEACHING_MISGOCREATE SCHEMA SCOURSES AUTHORIZATION USER01CREATE TABLE TEST01(SCID CHAR(8),SCNAME NVARCHAR(30),SP CHAR(4)GO创建架构的语法注意此时是以sa登录创建的,因此该架构也属于sa登录用户,当使用以下SQL语句来改变登录用户为USER01,再查询所创建的表TEST01:SETUSER USER01SEL
12、ECT*FROM SCOURSES.TEST01由于USER01是SCOURSES架构的拥有者,所以其具有操作该架构的权限,因此,可以通过SELECT语句正确查询到TEST01表中的数据。创建架构的语法最后,使用以下SQL语句将登录用户改变为USER02,再来查询TEST01表:SETUSER USER02SELECT*FROM SCOURSES.TEST01执行上述代码,出现错误而不能完成指定查询,该输出窗口显示内容如下:-消息15157,级别16,状态1,第1 行由于以下原因之一,setuser 失败:数据库主体USER02 不存在,与数据库主体对应的服务器主体没有服务器访问权限,无法模拟
13、此类型的数据库主体或您没有权限。创建架构的语法在SQL Server 2005中,虽同为一个数据库的用户,但由于USER02没有SCOURES的所有权,则不能操作该架构下的表TEST01,只有当USER02赋予权限后,才可操作该表,在这里,权限不再和用户相关,用户和架构已经分离。当用户访问对象但并没有以两节名称明确指定架构时,SQL Server 2005会先找与用户默认架构相同的架构下的对象,若找不到该对象,再去dbo架构下查找是否有相同的对象。6.SQL Server 2005中的权限设定 在SSMS中进行用户授权使用SQL语句进行用户授权收回权限 否认权限 使用SQL语句进行用户授权在S
14、QL Server2005中,使用GRANT语句将安全对象的权限授予指定的安全主体。但GRANT语句的语法是比较复杂的,因为不同的安全对象有不同的权限。使用GRANT子句进行授权操作的语法形式如下:GRANT ALLPRIVILEGES|permissionpermission(columncolumn,),nON class:securablesecurable TO principalprincipal,nWITH GRANT OPTIONAS principal示例给用户user01_stu赋予在数据库TEACHING_MIS上查询COURSE表的权限,可使用下面的SQL语句:USE T
15、EACHING_MIS;GRANT SELECT ON COURSE TO user01_stuGO收回权限 在SQL Server 2005中,使用REVOKE语句可以从某个安全主体处收回权限,注意该语句与GRANT语句对应,即是执行REVOKE语句收回的必须是先前经过GRANT语句授予安全主体的权限。在前面示例中,所授予用户user01_stu对于安全对象COURSE的查询Cname字段的权限,可以使用以下的REVOKE语句予以收回:USE TEACHING_MIS;REVOKE SELECT ON COURSE(cname)FROM user01_stuGO否认权限用户可通过两种方式获取
16、权限,一种方式是直接使用GRANT语句授予权限,另一种方式则是通过作为角色成员以继承角色的权限。REVOKE语句可以删除用户通过第一种方式所获得的权限,而如果需要彻底删除安全主体的特定权限,必须使用DENY语句来实现。示例否认前面授予用户user01_stu在对象COURSE表中查询CNane字段的权限。USE TEACHING_MIS;DENY SELECT ON COURSE(cname)TO user01_stuGO7.SQL Server 2005数据加密(自学)SQL Server 2005引入了成熟的数据安全技术,提供了对数据内容加解密、签名验证等功能。并实现了加密层次架构(Enc
17、ryption Hierarchy)。所谓加密的层次结构,意指对于众多要记住的且设置密码强度的规则又不同密码,将其都记录下来,但记录的时候用另一组密码加密,所以使用者只要记得加密其他密码的密码,要访问不同的密码时,先用终级密码解开后,再将解回的密码赋予到对应的系统上。这个密码管理所需要的层次架构。SQL Server 2005数据加密服务的服务的Master KeyMaster Key数据库的数据库的Master KeyMaster Key证书证书(Certificates(Certificates)非对称密钥非对称密钥非对称密钥非对称密钥对称密钥对称密钥对称密钥对称密钥数据数据数据数据数据数
18、据数据库中数据是从外界输入的,由于各种原因,数据库中的数据在输入过程中,会发生输入无效或输入错误的情况。因此,保证输入数据符合规定就成了数据库系统首要关注的问题,数据完整性因此而提出。数据完整性就是指数据的正确性和相容性。为保证数据库系统,特别是多用户的关系数据库系统中输入数据符合要求,以及存储的数据的正确性而提出的一整套规定。1.数据完整性类型 实体完整性(Entity Integrity)实体完整性规定表的每一行在表中是唯一的实体。实体完整性通过索引、UNIQUE约束、PRIMARY KEY约束和IDENTITY属性来强制表中的实体必须是唯一的。域完整性(Domain Integrity)
19、域完整性指数据库表中的列必须满足某种特定的数据类型或约束。表中的CHECK、FOREIGN KEY约束和DEFAULT、NOT NULL定义以及数据类型的限定属于域完整性的范畴。参照完整性(Referential Integrity)引用完整性,是指保持表之间已定义的关系。通过FOREIGN KEY约束、CHECK约束确保键值在所有表中一致,也即保证了表之间的数据的一致性。用户定义的完整性(User-defined Integrity)针对某个特定关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足特定的业务规则。2.完整性约束(Constraint)约束是在SQL Server 中实现
20、数据完整性的一种方法,它通过定义可输入表或表的单个列中的数据的限制条件而自动保持数据库完整性。SQL Server 中有5 种约束:主键约束、外键约束、惟一性约束、检查约束和缺省约束。主键约束主键约束是指定表的一列或几列的组合的值在表中具有惟一性,即主键能惟一地指定一行记录。每个表中最多只能有一个主键,且不允许主键列有NULL 属性。主键约束是最重要也是使用最广泛的约束类型。它在创建或修改表时,通过定义Primary Key约束来创建主键。创建主键约束的基本语法如下:CONSTRAINT constraint_namePRIMARY KEY CLUSTERED|NONCLUSTERED(col
21、umn_name1column_name1,column_name2,column_name16)示例-创建一个股票交易信息表,以股票账号为关键字:create table TRADE_INFO(stock_account char(10)not null,stock_number char(10)not null,order_number char(10)not null,order_price money default 1.00,trade_time datetime not null,constraint pk_s_account primary key(stock_number)on
22、 primary通过修改表添加约束alter table TRADE_INFOAdd constraint pk_s_account primary key(stock_number)外键约束 外关键字约束定义了表之间的关系。当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关键字,并设定它与那个表中哪些列相关联。当在定义主关键字约束的表中更新列值时,在其它表中,即在与之相关联的外关键字约束的表中的外关键字列也将被相应地做相同的更新。外关键字约束的作用还体现在,当向含有外关键字的表插入数据时,如果在与之相关联的含有主关键字的表的列中,没有与插入的外
23、关键字列值相同的值时,系统会拒绝插入数据。定义外关键字约束的基本语法如下:CONSTRAINT constraint_nameconstraint_nameFOREIGN KEY(column_name1column_name1,column_name2,column_name16)REFERENCES ref_tableref_table (ref_column1ref_column1,ref_column2,ref_column16)ON DELETE CASCADE|NO ACTION ON UPDATE CASCADE|NO ACTION NOT FOR REPLICATION 示例-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库保护 数据库 保护 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内