事前防范,事中控制,事后审计。
就整个信息系统的安全而言,数据的安全是最重要的。数据库系统的安全性在技术上依赖于两种方式:
1)DBMS本身提供的用户身份识别、视图、权限控制和审计等管理措施
2)由应用程序实现对数据库的访问控制和管理
应用程序写代码来实现对数据的访问控制,不必多言,而数据库本身的安全性措施,如下所示
1、用户标识和鉴别
最外层的安全保护措施,即身份认证。常用方式有
1)口令认证
2)强身份认证
口令方式可能容易被窃听,不够安全。强身份认证过程使认证可以结合信息安全领域一些更深入的技术保障措施来强化用户身份的鉴别,比如与数字证书、智能卡或用户指纹识别等多种身份识别技术相结合。
2、存取控制(数据授权)
对用户进行授权,包括操作类型(如查找、更新或删除)和数据对象的权限。
用户通过身份认证以后,需要区分角色来区别对待。一般可以将权限角色分为三类:
1)数据库登录权限类
2)资源管理权限类
除了拥有登录权限,还有创建和修改表、‘索引等权限
3)DBA权限类
DBMS除了提供基于功能角色的操作权限,还提供了对数据对象的访问控制。控制粒度从大到小,分别是 数据库级、关系级(表级)、元组级(行级)、属性级(列级)。
3、密码存储和传输
对远程终端信息加密传输。
4、视图的保护
通过视图的方式进行授权。
视图是一个虚拟表,其内容由查询定义。 同真实的表一样,视图包含一系列带有名称的列和行数据,但并不存储数据,数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。使用视图可以实现以下功能:
1)将用户限定在关系中的特定元组上。即只能看到特定的数据行。
2)将用户限定在特定属性上,即只能看到特定的列。
3)将多个关系中的属性连接起来,使它们看起来像一个关系(即表)。
4)聚合信息,比如显示一个属性的和,或者属性最大值,等等。
【物化视图】
特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,本身只存储查询定义,并不存储数据。而物化视图是物理表,存储基于查询的数据,它可以理解为数据表的快照。
5、审计
使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来。
如果身份认证是一种事前防范措施,审计则是一种事后监督手段。审计作为一种安全检查措施,会将系统的运行状况和用户访问数据库的行为以日志的形式记录并保存下来,作为稽查的证据。审计分为
1)用户审计
系统记录所有对表或视图进行访问的企图(包括成功或不成功的),以及相关的用户名、时间和操作代码等信息。这些信息通常记录在日志中。
2)系统审计
由DBA进行,审计内容主要为系统一级命令和数据对象的使用情况。