数据库知识:介绍数据库服务器安全的权限控制策略

  任何服务器安全和性能是两个永恒主题作为企业信息化安全人员其主要任务就是如何在保障服务器性能前提下提高服务器安全性而要做到这服务器访问权限控制策略无疑是其中个重要环节笔者企业最近上了台新数据库服务器我为他设计了些权限控制手段这些思路方法虽然不能够百分的百保证数据库服务器安全性但是这些仍然是数据库服务器安全策略中必不可少原因他对提高数据库服务器安全性有着不可磨灭作用
  
  其实这些控制策略不但对数据库服务器有效;对其他应用服务器仍然具有参考价值
  
  、给用户授予其所需要最小权限
  
  不要给数据库用户提供比其需要还要多权限换句话说只给用户真正需要、为高效和简洁地完成工作所需要权限这个道理很容易理解这就好像防止职业贪污你若只给某个员工其完成工作所必需费用分都不多给那其从哪里贪污呢?
  
  如从数据库服务器角度来考虑这个问题这就要求数据库管理员在设置用户访问权限时候注意如下几个方面问题
  
  是要限制数据库管理员用户数量在任何个服务器中管理员具有最高权限为了让数据库维持正常运转必须给数据库配置管理员账户否则当数据库出现故障时候就没有合适用户对其进行维护了但是这个管理员账户数量要严格进行限制不能为了贪图方便把各个用户都设置成为管理员如笔者企业台数据库服务器中运行着两个例子但是只有个数据库管理员负责数据库日常维护所以就只有个管理员账户
  
   2是选择合适账户连接到数据库般数据库访问权限可以通过两种方式进行控制是通过前台应用也就是说其连接到数据库是个统账户如管理员账户;但是在前台应用中设置了些关卡来控制用户访问权限这种方式虽然可以减少前台开发工作量但是对于数据库服务器安全是不利 2是在前台就直接利用员工账户账号登陆到数据库系统这种做法虽然可以提高数据库安全性但是其前台配置工作量会比较繁琐而笔者往往采用折中思路方法在数据库中有两类账户类是管理员账户只有前台系统管理员才可以利用这类账户登陆到数据库系统另外类是普通账户其虽然可以访问数据库中所有非系统对象但是他们不能够对数据库系统运行参数进行修改然后具体数据对象访问则通过前台应用控制如此前台应用普通员工只需要通过同个账户连接到数据库系统而系统管理员若需要进行系统维护如数据库系统备份和还原则可以通过数据库管理员账户连接到数据库系统则即方便了前台应用配置效率又提高了数据库服务器安全性总的我们就是要限制以数据库管理员身份连接到数据库用户数量
  
  在其他应用服务器中也有管理员账户和普通账户的分在权限分配时候也最好只给用户授予其需要最小权限以保障数据库服务器安全
  
   2、取消默认账户不需要权限
  
  在建立账户时候服务器往往给给其些默认权限如在数据库中Public是授予每个用户默认角色任何用户只要没有指定具体角色则其都可以授予Public组权限这其中还包括执行各种SQL语句权限如此用户就有可能利用这个管理漏洞去访问那些不允许他们直接访问这个默认权限对于那些需要他们并且需要合适配置和使用他们应用来说是非常有用所以系统默认情况下并没有禁止但是这些包可能不适合和其他应用除非绝对需要否则就应该从默认缺陷中删除
  
  也就是说通常某个账户默认权限其是比较大如对于数据库来说其账户默认权限就是可以访问所有非系统对象表数据库设计时候主要是为了考虑新建用户方便而且新建用户时候数据库确实也无法识别这个用户到底能够访问哪些用户对象但是对于企业应用系统来说若给每个员工都默认具有这么大访问权限那则是很不安全
  
  笔者做法是会把应用系统默认用户权限设置为最小有些甚至把默认用户权限全部取消掉这就迫使服务器管理员在建立账户时候给账户指定管理员预先设定角色这就可以有效防止管理员“偷懒”在建立账户时候不指定角色
  
   3、正确鉴别客户端
  
  正确鉴别客户端合法性这是提高应用服务器安全性个不 2法则有时候为了服务器安全性考虑必须要求对客户端合法性进行鉴别对此我们可以通过如下措施来管理客户端
  
  是对于具有管理员账户角色进行远程鉴别虽然从理论上说可以对任何台客户端都采取远程鉴别如通过主机名或者IP地址进行合法性鉴别但是这么做往往太过于小题大做会增加管理上烦恼或者说投入和回报不成正比所以在实际配置中笔者不会对每台客户端都进行合法性验证而只对于利用管理员账户登陆服务器客户端才进行合法性验证如可以在数据库服务器上进行设置只有哪几个IP地址才可以通过管理员角色连接到数据库系统中通过对客户端身份合法鉴别就可以再进步提高数据库服务器管理员角色账户安全性即使管理员账户和口令被窃取有客户端身份验证这功能也不怕他们进行非法攻击
  
   2是不要太过于相应客户端自我保护功能如在某个品牌数据库系统中种远程鉴别功能他会处理连接到数据库远程客户用户鉴别问题数据库绝对信任任何客户都已经进行了正确鉴别但是我们都知道在任何情况下我们不能够相信客户端会正确地执行操作系统鉴别往往这个安全特性只是作为摆设对于数据库服务器来说个比较安全做法是不采用这种远程鉴别功能而是在服务器上对客户端进行统鉴别如在服务器上通过身份认证功能来确保连接到服务器上客户端合法性和真实性
  
   4、数据库系统最好不要穿透防火墙
  
  如果把数据库服务器放置在防火墙后面则最好在任何情况下都不要穿透该防火墙否则会让数据库系统失去防火墙保护从而把数据库暴露在互联网下成为众多黑客茶余饭后“调戏”、“攻击”对象
  
  例如不要打开数据库1521端口来和互联网进行连接如果用户执意要这么做则会引起很多重要安全弱点攻击者可以凭借这个弱点打开更多穿透防火墙端口、多线程操作系统服务器问题以及泄漏防火墙后面应用服务器中重要信息再者这个弱点还有可能被用来探测数据库服务器关键细节如利用窃听监听器来获得关键信息监听器会监听该数据库运行轨迹、登陆信息、标识信息、数据库描述服务以及服务名等等
  
  所以执意把放在企业防火墙背后应用服务器中某个关键端口设置成为穿透防火墙端口是种很不好安全习惯虽然其可以带来管理上方便但是出于安全考虑笔者还是不建议管理员进行如此配置
  
  针对数据库应用服务器访问和连接权限控制还有许多以上 4个方面是大家在数据库服务器部署时候容易忽视几个地方希望这篇文章能够给大家些提醒
Tags: 

延伸阅读

最新评论

发表评论