Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12551
  • 博文数量: 1
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-08 16:32
文章分类
文章存档

2013年(1)

最近访客

分类: Oracle

2013-05-14 13:27:35

数据库安全包括多个含义,一个含义是数据库不因意外事故丢失数据,这个方面主要通过备份和恢复策略来保障,服务更高可用的保障还包括集群和备用库,在Oracle可通过RACDataGuard来实现。数据库安全的另一个含义是防止有意的攻击和破坏,包括非法查询、非法更改和删除数据,这就需要通过一系列的安全策略来实现。下面讨论的都是针对第2个含义的数据库安全采取的一些措施。

本人所在的是一个对外提供数据录入、查询访问的数据中心,采用一个3层架构的应用程序来使用数据库,即客户端、业务逻辑中间层和后台数据库,分别运行在逻辑上独立的计算机上,彼此之间通过网络来连接。这中间任何一层都能实现对数据库的访问,因此,必须在每一层上保证对数据库的安全。

首先,需要在数据库服务器操作系统一级实行安全策略。

数据库的数据文件和可执行文件均存储在物理硬盘上,在操作系统上,可以执行删除文件、停止进程等危险操作,必须严格限制对操作系统的远程登录。有时候开发人员为了方便,在本机上装一个客户端软件,就使用telnetssh访问数据库主机,应该禁止这种行为,方法有2种,一种是在服务器端防火墙增加白名单或黑名单,拒绝未经授权的IP地址访问,另一种是设置一个堡垒主机,执行访问审计和验证,通过验证的用户才能访问数据库服务器。

其次,在数据库一级实行安全策略。(Oracle为例)

第一种方法是在数据库中创建一个登录触发器,在触发器中限制IP、用户、客户端软件等,但这种方法对SYS等管理员用户无效,只会生成日志信息。第2种方法是在监听的配置文件sqlnet.ora中设置tcp.validnode_checking=yes并在tcp.invited_nodes中列出允许的IP列表。这种方法对数据库的压力更小,且对管理用户有效,当然,对于能访问主机操作系统用户,他也可以修改这个配置,所以,必须首先保证操作系统安全本法才能有效。Oracle还提供了多种安全措施或产品,如审计和Database Vault,提供更多的安全功能和更强的控制能力,并能满足合规性的要求。

再次,在应用服务器层加强保护。

一般而言,用户都是通过合法的应用程序访问数据库,很少直接访问数据库,数据库对合法的应用程序也建立了信任关系,如果通过应用服务器层访问数据库,就有可能绕过IP限制等控制手段,所以,必须对应用服务器主机实现与数据库服务器同样的安全策略。

最后,在应用程序中加强安全设计。

应用程序直接面对最终用户,也直接面对攻击者,如果程序有漏洞,就可能被攻击者利用,轻易地通过应用程序威胁数据库安全。可以采用漏洞扫描软件对常见的漏洞进行查找,及时修改有问题代码,防止被黑客攻击。首要的还是加强安全意识,自觉在设计中考虑安全问题,如只授予必需的权限等。

总之,要综合采取多种手段,保证数据库安全。

阅读(1933) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~