第六章 数据库完整性和安全性
- 基本内容
-  
   
  - 完整性 
    - 实体完整性、参照完整性、用户自定义完整性
 
- 安全性 
    - 身份验证
- 权限控制
- 事务日志,审计
- 数据加密
 
- 数据库恢复 
    - 冗余技术恢复,数据转储和登记日志
- 检查点恢复,检查点和重启动文件
- 数据库镜像
 
 
- 完整性 
    
- 完整性,
-  
   
  - 实现完整性
- 违反完整性 
    - 当操作违反实体和用户自定义完整性时,一般DBMS都拒绝执行操作
- 当操作违反参照完整性时 
      - 拒绝执行
- 级联执行,将所有表一起更新
- 置空值
 
 
- 约束 
    - 表级约束
- 元组级约束
- 属性级约束
- 常用约束 
      - primary key主码,
- foreign key外码,
- (not) null非空
- unique唯一性
- check检查 
        - 使用时,例如check (sex in (''男,‘女’))
- CHECK(SNO LIKE '[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
 
- default默认,例如创建表时设置属性 sex default '男'
 
 
- 规则
-  
     
    - 规则只有绑定到列或者用户定义数据类型时才起作用。
- 规则是作为一个独立的数据库对象存在,表中每列或者每个用户定义数据类型只能和一个规则绑定。
- 创建规则 
      - CREATE- **RULE**- rule_name AS condition_expression
 
- 绑定规则可以通过 sp_bindrule 存储过程实现 
      - exec sp_bindrule 'rule_name','属性列'
 
- 解除规则 
      - exec sp_unbindrule '属性列'
- drop- **rule**- rule_name
 
 
 
- 安全性, @面试
-  
   
  -  措施: 数据加密,权限控制,审计日志,身份鉴别 
-  安全级别 - A1,B3,B2,B1,C2,C1,D
 
-  角色 
-  
     
    -  服务器角色 - 由服务器账户组成的组,根据对服务器的管理任务以及这些任务的相对的重要性等级把具有sql server管理职能的用户划分到服务器角色组
- 固定服务器角色:sysadmin,serveradmin,diskadmin,processadmin,securityadmin,setupadmin,dbcreator和 bulkadmin
 
-  数据库角色 
-  
       
      - 固定的数据库角色
 
 
-  一个用户可以属于同一个数据库中的多个角色 
-  创建角色 
-  为角色添加成员,使用系统存储过程, 
 
-  
-  授权粒度 
-  
     
    - 关系数据库中的粒度:数据库、表、列、行
 
-  授权操作 
-  回收权限 
-  权限类别 - 对象权限 
      - 对特定的安全对象(表、视图、列、存储过程、函数)的操作权限
- 如select,update,insert,delete,execute,references。
 
- 语句权限 
      - 对数据库的操作权限,通常是一些具有管理性的操作
 
 
 
- 对象权限 
      
-  数据加密 
-  审计 
-  
     
    - 系统级审计
- 用户级审计
- 设置审计功能
- 取消审计功能
 
-  SQL Server安全功能 - 登录
 
-  安全性控制 - MAC,强制存取控制,对不同用户授予不同级别的许可证
- DAC,自主存取控制,不同用户对不同数据对象有不同的存取权限
 
 
-  
- 数据库恢复技术
-  
   
  - 事务, @面试
-  
     
    - 特性,ACID 
      - 原子性Atomicity
- 一致性Consistency
- 隔离性Isolation
- 持续性Duration
 
- 事务状态 
      - 活动
- 部分提交
- 提交
- 失败
- 终止
 
 
- 特性,ACID 
      
- 数据库故障 
    - 系统故障
-  
       
      - Undo未完成的事务,Redo已完成的事务,用队列进行记录
 
- 事务内部故障
- 存储设备故障
-  
       
      - 重装数据库,重做已完成的事务
 
- 其他原因
 
- 数据库恢复原理, @面试
-  
     
    - 冗余恢复技术
-  
       
      - 数据转储 
        - 静态转储和动态转储 
          -  
            - 静态转储
 
-  
             
            - 转储开始时数据库必须处于一致的状态
- 转储期间不允许对数据库进行任何的修改
 
-  
            - 动态转储
 
 
-  
            
- 增量转储和海量转储
 
- 静态转储和动态转储 
          
- 登记日志 
        - 登记的日志必须严格按照时间顺序
- 必须先写日志文件再写数据文件
- Redo技术
- Undo技术
 
 
- 数据转储 
        
- 检查点恢复技术
-  
       
      - 检查点
- 重启动文件
- 恢复步骤 
        - 从重启动文件中找到最后一个检查点记录
- 得到检查点中所有事务清单,并加入Undo队列中
- 从检查点开始正向扫描事务,遇到完成的事务就加入Redo队列
- 对Undo事务进行Undo处理,对Redo事务进行Redo处理
 
 
- 数据库镜像恢复技术
-  
       
      - 实际使用中纸赋值关键数据和日志文件
- 镜像数据库也可用于并发访问
 
 
 
- SQL Server数据恢复机制 
  - 备份方法 
    - 完全备份
- 差异备份
- 事务日志备份
- 数据库文件或文件组备份
 
- 恢复方法 
    - 简单恢复
- 完全恢复
- 大容量日志记录恢复
 
 
- 备份方法 
    
- 数据库维护所做工作, @面试 
  - 数据库转储与恢复,
- 数据库安全性和完整性, ,
- 数据库性能监督、分析、改进
- 数据库重组织和重构造
 










