数据库原理及应用(八)数据库保护

数据库安全性和安全管理

        1.数据库安全性控制的一般方法

                (1)用户标识与鉴别:由系统提供的最外层安全保护措施,每次用户要求进入系统时都需要输入用户标识。有以下几种方法:

                        1)用输入用户名来标识

                        2)通过回答口令来表示(PSW)

                        3)通过回答对随机数的运算结果表名用户身份(系统提供随机数,事先规定好计算过程/函数)

                (2)存取控制:确保具有权限的用户访问数据库,令未授权的人员无法接近数据库

                        1)存取机制构成:定义用户权限;权限检查(用户提出操作请求时)

                        2) 存取机制类别:  自主存取控制)(DAC);用户对不同对象有不同的权限,更加灵活

                                                        强制存取机制控制(MAC);只允许持有合法许可证(对应级别许可证)的用户访问,较为严格

                (3)自主存取控制方法

                        1)关系中的用户权限

                        2)SQL的数据控制功能

                                使用GRANT和REVOKE进行授权和收权(由创建者或获得权限的用户执行)

                                授权机制的性能:        1.授权对象范围越小授权系统越灵活,授权粒度越细

                                                                     2.用户权限定义中能够使用谓词的授权系统较灵活

                                                                     3.用户权限定义中能使用谓词、且存取谓词中能够引用系统变量的授权系统更灵活

                                                                     4.自主存取控制机制的不足:系统对授权状态无法进行控制,易造成无意数据泄露

                (4)强制存取控制方法

                        1)主体、客体及敏感度标记

                                主体:系统中的活动实体--管理系统的实际用户、用户的各种进程

                                客体:系统中的被动实体(受主体控制):文件、基表、索引、视图等

                                敏感度:绝密、机密、可信、公开

                        2)主体对客体的存取规则

                                主体的许可证等级大于客体的密级时才能够访问客体

                                主体的许可证等级等于客体的密级时才能客体

                        3)DAC和MAC共同构成的安全机制

        5.视图机制

                通过视图将数据对象限制在一定范围内,对无权限用户隐藏,从而自动的提供一定程度的安全保护

        6.审计

                用户所有操作都会自动放入审计日志

        7.数据加密

                1)替换方法:使用密钥将明文转换为密文

                2)置换方法 :将明文进行重新排列

SQL Server的安全体系结构和安全认证模式

        1.MSSQL的安全体系结构

                (1)Windows NT操作系统的安全防线(用户组)

                (2)SQL Server的运行安全防线(帐号标准登录和集成登录)

                (3)SQL Server数据库的安全防线(无权限用户无法访问数据库)

                (4)SQL Server数据库对象的安全防线(T-SQL保证了即使是合法用户也无法越权操作)

        2.MSSQL的安全认证模式

                1)Login的用户管理

                2)数据库用户(Database User)的管理

                3)服务器级角色的管理

                4)数据库角色的管理

SQL Server权限管理

        1.MSSQL权限管理

        2.对象权限的管理

        3.语句权限的管理

SQL Server的完整性控制

        1.完整性约束条件及完整性控制

                1)静态级约束:

                        1.列级约束:数据类型约束,数据格式的约束,对取值范围和值集合的约束,对空值的约束,其他约束

                        2.元组约束

                        3.表级约束:实体完整性约束,参数完整性约束,函数依赖约束,统计约束

                2)动态级约束

                        1.修改定义时的约束

                        2.修改列值的约束

                        3.元组约束

                        4.表级约束

                 3)完整性控制机制的功能及执行约束

                        1.完整性控制机制应具有的功能

                                1)定义完整性功能

                                2)检查完整性功能

                                3)控制完整性功能

                        2.立即执行约束、延迟执行约束

                4)完整性规则约束

                 5)实现参照完整性要考虑的问题

                        1.外码能够接收空值

                        2.在被参照关系中删除元组的问题:

                                级联删除<全部删除>、

                                受限删除<没有任何元组的外码与被参照关系中要删除的主码相同时,系统才能执行删除>

                                置空值删除<将参照关系中相关的元组的外码值置空>

                        3.在参照关系中插入元组的问题

                                受限插入,仅在被参照关系存在对应元组的时候且外码相同时插入

                                递归插入,

                                修改关系的主码问题

                                修改表是被参照关系的问题

SQL Server的数据库完整性及实现方法

        1.SQL Server的数据完整性的种类

                1)域完整性

                2)实体完整性

                3)参照完整性

        2.SQL Server数据完整性的两种关系

                1)声明数据完整性

                2)过程数据完整性

        3.SQL Server实现数据完整性的具体关系

                1)约束的类型

                2)声明数据完整性约束的定义方法

 SQL Server数据库的并发控制

        1.事务的概念和特征

                事务是用户定义的一个数据库操作序列,这些操作要么不做要么全做,是一个不可分割的工作单位。

                事务的特性:原子性、一致性(提交前后都是一致的)、隔离性(不能被干扰)、持续性(提交后改变时永久的)

                        持续性遭到破坏的原因:1.多个事务并行运行、不同事务的操作交叉执行

                                                                2.运行中被强制停止

                        事务并发操作可能产生的数据不一致:1.丢失修改、2.不可重复读、3.读"脏"数据

        2.封锁及封锁协议

                锁的类型:      1.排他锁  X(独占锁/写锁)

                                        2.共享锁  S(读锁)

                封锁协议:        1.一级封锁协议:事务T在修改数据之前必须先对其加X锁,直到事务结束才能释放

                                           2.二级封锁协议:修改的数据必须加X锁,事务结束才能释放X锁

                                                                        读取的数据必须加S锁,事务结束才能释放S锁

                                           3.三级封锁协议:读取数据之前必须加S锁、修改数据前加X锁,直到事务结束后才能释放

        3.封锁出现的问题及解决方法

                活锁:多个事务请求同一数据封锁,使某一用户等待的情况

                        解决:先来先服务

                死锁: T1封锁了R1,T2封锁了R2,两者又要求封锁对方的数据,它们不会结束,只能等待造成僵持

                        解决:     采用一定措施预防死锁发生

                                        系统定时检查死锁并将至释放(选择一个代价最小的事务)

                死等待:已经锁定了一部分数据,还要求对其他已加锁的事务加锁

                                一次封锁法:一次性全部加锁,否则事务不在进行

                                顺序封锁法:预先对数据对象规定一个封锁顺序

        4.并发调度的可串行性

        5.两段加锁协议        1.对任何一个数据读、写之前,先申请并获得对该数据的封锁

                                         2.在释放一个封锁后,事务不能再申请该对象的封锁(不吃回头草)

        6.封锁的粒度:封锁对象的大小,可以是逻辑单元也可以说物理单元(属性值、集合、元组、关系、整个数据库)

                粒度越小,并发程度越高

         MSSQL的并发

                1.锁级别        (1)行级锁        (2)页级锁        (3)簇级锁        (4)表级锁        (5)数据库级锁

                2.锁类型        1.X锁        2.S锁        3.IS锁(意向共享锁)        4.IS(意向排他锁)、

数据库恢复技术和恢复机制

         1.故障的种类

                1)事务内部的故障:事务没有达到终点,强行回滚该任务(撤销修改)

                2)系统故障      1.故障发生时未完成的事务的部分数据写入物理数据库造成状态异常,强制清除这些数据修改(UNDO、回滚)来保证数据的一致性

                                        2.故障发生时,①已完成事物的部分甚至全部数据留在缓冲区,未写回物理数据库,造成修改部分丢失,进行重做(REDO)所有已提交事物

                3)介质故障

                4)计算机病毒

                5)用户操作错误

        2.数据恢复实现技术

                1)数据转储:备份->静态转储(转储的时候不进行事务操作,降低数据库的可行性)、动态转储(转储后的数据不能保重有效性)

                                海量转储和增量转储-->每次备份全库还是增量数据

                2)登记日志文件

                        日志文件的内容和格式:各个事务的开始标记、结束标记、更新操作、

                        作用:用于数据库恢复

        3.数据库恢复策略

                1)事务故障的恢复

                        1.反向扫描文件日志(从后往前),查找该事务的更新操作

                        2.对该事务的更新操作执行逆操作

                        3.重复执行1、2,直到读到事务开始标记

                2)系统故障的恢复

                        1.正向扫描日志文件,找到在故障发生前提交的事务,将该事务列入重做队列;同时找到故障发生时未完成事务,,将其记入撤销队列

                        2.对撤销队列中的各个事物进行撤销

                        3.对重做队列的各个事物进行重做操作

                3)截止故障的恢复

                        1.装入最新的数据库后备副本

                        2.装入相应的日志文件副本

        4.具有检查点的数据恢复技术

                1)检查点记录和重新开始文件

                        检查点的记录内容为:建立检查点时所有正在进行的事务清单;

                                                            这些事务最近一个日志记录的地址

                2)动态维护日志文件的方法

                                1.将当前日志缓冲中道德所有日志文件记录写入磁盘的日志文件上

                                2.在日志文件中写入一个检查点记录

                3)使用检查点进行数据恢复的步骤

                                1.从重新开始文件中找到最后一个检查点记录在日志文件中的地址

                                2.由该检查点记录得到检查点

                                3.从检查点开始正向扫描日志文件

                                4.对撤销事务清单和重做清单进行执行

MSSQL的数据备份与恢复机制

        略

                                

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值