您现在的位置是:首页通信信息安全论文

浅析SQLServer数据库安全

发布时间:2011-02-26 13:47:00更新时间:2011-02-26 13:47:00 1


   摘要:随着计算机技术的飞速发展,数据库的应用越来越广泛,数据库系统更是存放了大量重要敏感的数据,一旦这些数据遭到破坏或窃取,其损失难以估量。本文分析了数据库安全性的基础知识,介绍了数据库面临的威胁,最后给出了保障数据库安全的一些相关策略。
  关键词:计算机,数据库,安全
  一、数据库安全的定义和目标
  1、数据库安全定义:
  数据库安全包含两层含义:第一层是指系统运行安全,系统运行安全通常受到的威胁如下,一些网络不法分子通过网络,局域网等途径通过入侵电脑使系统无法正常启动,或超负荷让机子运行大量算法,并关闭cpu风扇,使cpu过热烧坏等破坏性活动;第二层是指系统信息安全,系统安全通常受到的威胁如下,黑客对数据库入侵,并盗取想要的资料。
  2、数据库安全的目标
  (1)提供数据共享,集中统一管理数据。
  (2)简化应用程序对数据的访问,应用程序得以在更为逻辑的层次上访问数据。
  (3)解决数据有效性问题,保证数据的逻辑一致性。
  (4)保证数据独立性问题,降低程序对数据及数据结构的依赖。
  (5)保证数据的安全性,在共享环境下保证数据所有者的利益。
  二、数据库面临的安全威胁
  数据库面临的安全威胁主要有:过度特权滥用、合法特权滥用、特权提升、数据库平台漏洞、SQL注入、不健全的审计记录、拒绝服务攻击、数据库通信协议漏洞、不健全的认证、备份数据泄露。对于重要部门或敏感领域的数据,面临更多威胁,需要更复杂的操作才能保证数据的安全性的,此时,就需要进行一些专门的安全性方法设计,来进一步加强这些网络数据库的安全性。[来
  源:
  三、数据库安全性基础
  1、一个用户、一个登录名、一个密码
  应当把拥有全权访问权限的用户限制为仅仅一、两个人。理想的情况是,如果需要这种全权访问的密码,那么,你会想要不同的登录名拥有这样的访问权,而对于每一个登录名来说,只会有一个人知道其密码。
  2、密码过期
  密码过期的使用往往倾向于要么被滥用,要么被忽视。密码过期的原理是:对系统进行设置,使密码经过一段特定的时间后会自动过期,在到达时间期限后,用户必须更改密码才能继续访问账户。在实际诮中,应当使密码过期的时间足够短,以获得合适的新旧更替并应对共享或窃取密码的情况,但是又不能太频繁,建议过期的时间要多于90天但少于180天。
  3、密码长度和组成
  (1)密码长度
  用户每在密码中包含进一个可能的字母数字位,可能的密码数量就将至少增加36倍,随着要求密码包含的字符数越来越多,排列的方式也不断增加。
  (2)密码组成
  如果实施的不是默认的Windows密码策略,那么要考虑密码的组成不要完全是字母或数字,简单的数字以及完全的单词都很容易被猜到,排除这种情况,用户依然可以建立易于记忆的密码,例如“lucky69”,这样的密码不易猜测,为了尝试并入侵,任何黑客都不得不真正尝试每一种组合。
  4、尝试登录的次数
  无论物理上如何存储用户和密码信息,登录界面都应当与之有联系,从而限制用户尝试登录的次数,当用户超过了登录限制时,要确保有某种方法,让用程序的方式尝试所用密码的做法变得很困难。
  四、数据库安全策略
  在进行SQLServer2005数据库的安全配置之前,首先必须对操作系统进行安全配置,保证操作系统处于安全状态。然后对要使用的操作数据库软件(程序)进行必要的安全审核。
  1、使用安全的密码策略
  我们把密码策略摆在所有安全配置的第一步,对于sa更应该注意,同时不要让sa账号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步,建议密码不要过于简单。SQLServer2005安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非您确认必须使用空密码。同时养成定期修改密码的好习惯,数据库管理员应该定期查看是否有不符合密码要求的账号。
  2、数据库加密
  对于一些重要的机密的数据,例如一些金融数据、商业秘密、游戏网站玩家的虚拟财产,都必须存储在数据库中,需要防止对它们未授权的访问,哪怕是整个系统都被破坏了,加密还可以保护数据的安全。对数据库安全性的威胁有时候是来自于网络内部,一些内部用户可能非法获取用户名和密码,或利用其他方法越权使用数据库,甚至可以直接打开数据库文件来窃取或篡改信息。因此,有必要对数据库中存储的重要数据进行加密处理,以实现数据存储的安全保护。
  数据库加密要求加解密的粒度是每个记录的字段数据。采用库外口密,密钥管理较为简单,只需借用文件加密的密钥管理方法。但是,加密后的数据块纳入数据库时,要对数据进行完整性约束,而加密后的数据可能会超出约束范围,因此要在算法或数据库系统中做些必要的改动,以利于公共数据字典的使用和维护系统的完整性要求。在概念模式与存储模式之间,增加一个数据加密模式,就可以在描述数据存储的物理结构之前,对待存储的数据进行加密处理或者在使用存放的物理数据之前,对之进行解密处理数据加密模式的位置。
  3、加强数据库日志的记录
  审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有账号的登录事件。请定期查看SQLServer日志检查是否有可疑的登录事件发生,或者使用DOS命令。
  4、身份验证
  (1)Windows集成安全性
  Windows安全性让我们能够把登录从信任的Windows域映射到SQLServer中,在这种模式中,你取用现有的Windows域用户账户或组,并直接给它们提供SQLServer权限,而不是强迫用户保存单独的密码和进行单独的登录。
  (2)标准的安全性
  在使用SQLServer安全性时,是完全脱离开网络登录信息来创建登录ID的,用户不必为了访问到系统而成为域用户,而且更容易对用户信息进行程序化的控制。但用户可能必须登录两次或者更多次,这意味着DBA要做更多的维护,如果每次登录使用不同的密码,会导致大量的登录失败和密码遗忘。
  5、备份与恢复
  依靠网络办公的企业,其信息系统很可能随时被破坏而丢失数据,因此,数据库管理系统必须具备把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复技术,这是保障数据库系统安全运行的重要技术之一。为防止重要数据的丢失或损坏,数据库管理员应及早做好数据库备份的计划,定期对数据库和事务日志进行备份,这样当系统发生故障时,管理员就能利用已有的数据备份,把数据库恢复到原来的状态,以便保持数据的完整性和一致性。一般来说,数据库备份常用的备份方法有:静态备份(关闭数据库时将其备份)、动态备份(数据库运行时将其备份)和逻辑备份(利用软件技术实现原始数据库内容的镜像)等。而数据库恢复则可以通过磁盘镜像、数据库备份文件和数据库在线日志三种方式来完成。
  6、修改TCP/IP端口设置
  默认情况下,在使用TCP/IP时,SQLServer会使用1433端口号,如果你的SQLServer有直接到因特网的连接,可将端口更改为非标准的端口号,同时也需要修改所有基于IP的客户端所使用的端口。
  参考文献:[1]RobertVieira.《SQLServer2005高级程序设计》.人民邮电出版社.2008年4月第一版
  [2]李春葆.《数据库原理与应用》.清华大学出版社.2007年11第二版
  [3]任丽芳.企业信息系统中数据库安全探讨[J].山西财经大学学报.2007(1)

转载请注明来自:http://www.yueqikan.com/tongxinxinxianquanlw/4828.html