数据库及其应用系统的安全语义

安全的基本体系

安全的五个基本特征

机密性
完整性
可用性

(核心要素)
非抵赖性
可控性

基本安全服务

鉴别服务
访问控制服务
机密性服务
完整性服务
抗抵赖服务机制

系统安全的八大机制

安全机制:用来检测,防范安全攻击,或者可恢复系统的机制

数据加密机制

加密算法:对称密码机制,非对称密码机制
需要加密层选择,加密算法选择,密钥管理

访问控制机制

给客户分配权限

数据完整性机制

防止未授权的数据乱序,丢失,重放,插入,篡改
实例:级联删除出现的问题

数字签名机制

防止伪造,假冒,篡改,否认

鉴别交换机制

通过交换信息鉴别彼此身份

业务填充机制
路由控制机制

选择特殊的路由保证连接,传输的安全

公证机制

CA

系统安全基本原则

隔离原则

分解减少攻击面

最小特权原则

每个用户只能拥有刚够完成工作的最小权限

纵深防御原则

采用多种有效防御措施促使攻击搁浅

用户输入不信任原则

彻底验证所有用户输入

关卡检查原则
失效保护原则
最弱连接安全化原则
建立默认原则

为系统安全提供默认配置

减少攻击面原则

减少应用程序不需要的模块和组件,协议,服务。减少攻击可利用的漏洞

数据库保护

数据库安全性

访问控制
存取控制
视图机制
数据加密
审计

数据库完整性

触发器:通过事件触发被动执行

按照被激活的时间分为

after(for):触发器在触发他们的语句完成后触发
instead of:代替触发操作执行

按照事件分为:

insert触发器:表或者视图插入操作时被激活
delete触发器:表或者视图执行删除操作时激活
update触发器:表或者视图执行修改操作时被激活

创建触发器

create trigger 触发器名 on {表或者视图} 【with encryption】//加密
{FOR|AFTER|INSTEAD OF} {[INSERT],[,],[UPDATE],[,],[DELETE]} AS
sql_statement[…n]

管理触发器

通过sp_helptext能够查看触发器的正文信息

触发器使用的两个特殊表

当触发事件时,两个特殊的表被创建,即插入表和删除表,也称为幻表
存放备份

SQL表连接查询

  • 内连接inner join
  • 左连接left join
  • 右连接right join
  • 全连接full join

数据库并发控制

基本概念

事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做
定义事务的SQL语句

  • begin translation(事务开始)
  • commit (事务提交)
  • rollback(事务回滚)
封锁机制

封锁类型:

  • 排他锁,X锁,写锁,只允许事务读和修改,其他事务不能修改和读,也不能加锁
  • 共享锁,S锁,读锁,只允许对象被读,其他事务只能加S锁
    封锁协议:在对数据对象加锁时,为有效实现并发控制,还需要约定一些规则,这些规则称为封锁协议,何时申请X锁或S锁,封锁时间,何时释放

常用封锁协议:一二三级封锁协议

封锁出现的问题及解决办法

  • 活锁,采用先来先服务
  • 死锁,一次封锁法,顺序封锁法

封锁的粒度:指封锁对象的大小

多粒度封锁

事务调度的可串行性

调度:多个任务操作的一个执行顺序称为调度
串行调度:依次执行
并发调度:分时处理多个事务
可串行化:如果一个并发调度的执行结果与某一串调度的执行结果等价,则这个并发调度称为可串行化的调度,否则是不可串行化的调度
保证可串行性的策略:两段锁协议(2PL协议)(可串行化的充分条件,但不是必要条件,且可能发生死锁)

对事务的加锁解锁阶段分为两个阶段:

  • 获得封锁(扩展阶段),事务可以申请获得任何数据项上的任何类型的锁,但是不能释放锁
  • 释放阶段(收缩阶段),事务可以释放任何数据项上的任何类型的锁,但是不能申请任何锁

数据库备份与恢复

你可能感兴趣的:(数据库及其应用系统的安全语义)