基本安全机制
数据库安全是一个庞大的话题如果详细地介绍主流数据库厂商在数据库安全问题上的方方面面内容将过于庞杂安全问题并不是自关系型数据库出现才产生的密码验证锁定审计以及其他一些安全概念与人类的历史一样久远SQL仅仅是这些安全概念的一个新应用在SQL标准的指导(以及客户的要求)下所有RDBMS都建立了安全规程对于RDBMS来说通常可以划分为几个不同的安全层次各种RDBMS的差异在于这些安全层次上的具体实现不同
识别与身份验证
身份验证是数据库安全的第一道防线在可以访问RDBMS之前用户必须提交足够的信息以供验证可以由RDBMS自身来执行验证也可以由安装了数据库的操作系统来执行验证一旦通过了身份验证才可以继续访问数据库的资源对象和数据
授权和访问控制
一旦用户通过了验证并被授予了访问数据库的权限RDBMS将为特定的数据库对象启用一个复杂的精细的特权(权限)系统这些特权包括允许创建访问修改销毁或执行相关的数据库对象也包括添加修改和删除数据
加密
加密提供了另外一个保护层可以保护数据避免未经授权的查看在数据加密的情况下即使获得了对数据库的访问如果不在特殊客户端软件或密码的协助下也很难将加密过的数据解密为人类可读的信息
完整性和一致性
尽管安全性主要是基于验证和授权的过程而言但在保护数据避免无意或恶意的操作时数据的完整性扮演了一个重要的角色例如即使一个用户获得了访问数据库的权限(例如通过盗取密码)但他在操作数据时仍然必须遵循关系规则即不允许出现孤立记录在没有理解数据库关系的情况下用户将无法从父表中删除记录(然而一些RDBMS已经实现了CASCADE特性可以利用这一特性指示RDBMS根据父记录删除与之关联的子记录)也无法将重复的记录插入到具有UNIQUE约束保护的列或者向表中插入违反CHECK约束的无效数据
审计
审计提供了监视数据库活动的功能包括合法的活动和未经授权的活动它保存了试图访问数据库时留下的痕迹无论成功和失败以及删除和插入操作等(以便在需要时找出发生了什么操作)从安全认证的角度考虑审计功能是数据库中一个必要的组件这将在本章后面进行讨论
返回目录SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
数据仓库与数据挖掘培训视频教程