所谓数据库安全,就是指保护数据库以防非法使用所造成的数据破坏、更改、泄露。在一般计算机系统中,安全措施是一级一级层层设置的。数据库安全架构如图9.2所示。
图9.2 数据库安全架构设计示意
数据库安全架构可以从以下几个方面予以考虑:
一是数据库访问认证。数据库访问认证即为密码策略,常用的方法有:用户标识(User Identification)和口令(Password),这种鉴定用户的方法简单易行。
通常将密码策略摆在所有安全配置的第一步,但是很多数据库账号的密码过于简单,这跟系统密码过于简单是一个道理。健壮的密码是安全的第一步,建议密码含有多种数字字母组合且在9位以上。例如在安装SQL Server 2000的时候,如果是使用混合模式,那么就需要输入sa的密码。同时养成定期修改密码的规矩和习惯,数据库管理员应该定期查看是否有不符合密码要求的账号。
二是数据库存取控制。当用户进入系统后,在应用系统和数据库中到底可以进行什么样的操作,要靠“访问控制”和“存取控制”的权限来分配和约束。其中,“存取控制”与数据库相关联,决定当前用户可以对数据库中的哪些对象(表、视图、触发器、存储过程等)进行操作,以及可以进行何种操作。
数据库支持两种访问权限:语句层次和对象层次的访问权限。语句层次的访问权限使用户能够执行某些SQL语句,对象层次的访问权限允许用户对对象运行SELECT、INSERT、UPDATE或是DELETE操作。(www.xing528.com)
数据库安全所关心的主要是DBMS的存取控制机制。数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库,同时令所有未被授权的人员无法接近数据。这是通过数据库系统的存取控制机制实现的。存取控制又分为两种控制方法:即自主存取控制和强制存取控制,如表9.1所示。
表9.1 存取控制
三是数据库角色。一个数据库角色(Role)一般是指一个机构内的一个称谓或一个任务的集合。为了方便,可把用户归属不同的角色,对不同的角色分配不同的授权。譬如,在SQL中首先用CREATEROLE语句创建角色,然后用GRANT语句为角色授权。同样可使用REVOKE语句对角色进行回收。
四是数据库视图机制。视图是数据库系统提供给用户以多种角度观察数据库中数据的重要机制,是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。从某种意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。进行存取权限控制时,可以为不同的用户定义不同的视图,把访问数据的对象限制在一定的范围内,也就是说,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而对数据提供一定程度的保护。
五是数据库审计。数据库审计是检验数据库系统安全的重要组成部分,是在数据库系统工作期间,系统将所有数据库的运行数据记录下来的过程,通常存放在日志文件中,以便日后的调查和分析。虽然数据库安全系统采取了存取控制、数据加密等安全技术,但是从软件工程技术上看,目前我们还不能证明一个安全系统的安全强度。因此,作为重要的补充手段,审计跟踪是安全系统不可缺少的一部分,也是数据库系统的最后一道重要的安全防线。跟踪审计(Audit Trail)是一种监视措施。数据库在运行中,DBMS跟踪用户对一些敏感性数据的存取活动,跟踪的结果记录在跟踪审计记录文件中(有许多DBMS的跟踪审计记录文件与系统的运行日志合在一起)。一旦发现有窃取数据的企图,有的DBMS会发出警报信息,多数DBMS虽无警报功能,也可在事后根据记录进行分析,从中发现危及安全的行为,找出原因,追究责任,采取防范措施。审计功能是DBMS达到C2级以上安全措施必不可少的一项指标。
六是数据加密。数据加密把数据用密码形式存储在磁盘上。为了更好地保证数据库的安全性,用密码存储口令、数据,对远程用户的信息用密码传输防止中途被非法截获等。数据库中的数据以密码形式存放和传输,使用时用户用自己掌握的密钥通过解密程序把它解码为明文数据。这样,可以保证只有掌握了密钥的用户才能访问数据,而且即使数据被非法从数据库中窃取,或者在数据的传输过程中被截取,窃取者也无法知道密码数据的含义。军事、情报、银行等部门的重要敏感的数据库,可以采用数据密码方法存储和传输数据,以确保数据库的安全性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。