影响数据库系统的问题

    作者:课课家教育更新于: 2017-05-12 15:56:19

      要使数据库具备更强的抵御侵犯的能力,我们要采取几步措施。有些措施只是良好的服务器管理的一部分,如拥有SQLServer最新的补丁,其他则包括使用中用户监管。以下是五个步骤:

      查询最新的服务包

      你要保证你总能有最新的服务包。对于SQLServer2000,这是sql/downloads/2000/SP3.asp”>SP3a。记住服务包是多重的;如果你应用SP3a,你不必使用在此之前的服务包,比如SP3,SP2或者SP1。SP3是一种特殊的服务包,一旦安装就不再使用之前的任何升级程序,但它要进行安装要求是已经安装了SP1或者SP2的。

      注册安全警报

      尽管服务包有助于你的SQLServer数据库免于许多威胁,但是他们对快速运行的安全问题,如攻击者蠕虫就有点力不从心了。你需要注册微软的免费安全通知服务,它会用电子邮件通知你有什么侵入你的安全系统以及如何解决它们。

      运行MicrosoftBaselineSecurityAnalyzer(MBSA)

      这个工具针对SQLServer和MSDE2000桌面引擎。它既可以在本地也可联网使用。它用密码,访问权限,访问控制列表以及注册等方式查找问题,并且它找出遗失的安全包或者服务包。你可在TechNet上找到相关信息。

      删除SA和老密码

      人们常常犯的一个关于安全方面的错误就是不更改系统管理密码。你会轻易地忽略安装文件和剩余的配置信息,没有受到良好保护的认证信息和其他的敏感数据,这些都可能遭到攻击。你必需删除老的安装文件,同样的,运用KILLPWD工具,找出老密码,并删除他们。

      监控联接

      通过联接可以告诉你谁在试图进入SQLServer,所以监控联接是保证数据库安全的一个好方法。对于一个大型的运行中的SQLServer,可能会有太多的链接数据需要监控,但是监控那些失败了的链接确有必要,因为他们可能代表企图进入的一些尝试。你可将那些失败的链接登录上企业管理器,1.右击服务器,选择属性(Properties)。2.点击安全(Security)标签,在AuditLevel之下选择Failure。3.停止和重新启动服务器,以获得检查的开始。

    通过联接可以告诉你谁在试图进入SQLServer

      上文介绍了数据库怎样才能具备更强的抵御侵犯的能力,另外呢,改进数据库系统的最好的方法是先避免做“蠢事”。并不是说我们开发的东西“蠢”,只是有些决定很容易被人们忽略掉其暗含的牵连,认识不到这样做对系统维护尤其是系统升级带来多大的麻烦。

      图片,文件,二进制数据

      既然数据库支持BLOB类型的数据,把文件塞进BLOB字段里一定没有错了!?错,不是这样的!别的先不提,在很多数据库语言里,处理大字段都不是很容易。

      把文件存放在数据库里有很多问题:

      1.对数据库的读/写的速度永远都赶不上文件系统处理的速度

      2.数据库备份变的巨大,越来越耗时间

      3.对文件的访问需要穿越你的应用层和数据库层

      这后两个是真正的杀手。把图片缩略图存到数据库里?很好,那你就不能使用nginx或其它类型的轻量级服务器来处理它们了。

      给自己行个方便吧,在数据库里只简单的存放一个磁盘上你的文件的相对路径,或者使用S3或CDN之类的服务。

      短生命期数据

      使用情况统计数据,测量数据,GPS定位数据,session数据,任何只是短时间内对你有用,或经常变化的数据。如果你发现自己正在使用定时任务从某个表里删除有效期只有一小时,一天或数周的数据,那说明你没有找对正确的做事情的方法。使用redis,statsd/graphite,Riak,它们都是干这种事情更合适的工具。这建议也适用于对于收集那些短生命期的数据。

      当然,用挖土机在后花园里种土豆也是可行的,但相比起从储物间里拿出一把铲子,你预约一台挖土机、等它赶到你的园子里挖坑,这显然更慢。你要选择合适的工具来处理手头上的事。

      日志文件

      把日志数据存放到数据库里,表面上看起来似乎不错,而且“将来也许我需要对这些数据进行复杂的查询”,这样的话很得人心。这样做并不是一个特别差的做法,但如果你把日志数据和你的产品数据存放到一个数据库里就非常不好了。

      也许你的日志记录做的很保守,每次web请求只产生一条日志。对于整个网站的每个事件来说,这仍然会产生大量的数据库插入操作,争夺你用户需要的数据库资源。如果你的日志级别设置为verbose或debug,那等着看你的数据库着火吧。

      你应该使用一些比如SplunkLoggly或纯文本文件来存放你的日志数据。这样去查看它们也许会不方便,但这样的时候不多,甚至有时候你需要写出一些代码来分析出你想要的答案,但总的来说是值得的。

      小编结语:

      更多内容尽在课课家教育!

课课家教育

未登录