Welcome to Rolland Town which Record fire's life.
« »
2009年03月19日代码生活

165 views

如何限制操作系统级用户影响Oracle数据

  这是最近两天我一直考虑的一个问题。简单描述下:SPARC版的Solaris和Oracle取消了Oracle的操作系统认证。可否有办法不允许root用户su到dba组的任何一个用户,然后更改oracle参数后,直接使用connect as sysdba登录后更改Oracle下实例的数据?或者说Oracle有没有什么安全策略给不同的实例。以阻止操作系统级别的用户对数据进行操作。

  首先,就问题来说,即便是我更改了Oracle参数,不允许dba组的用户直接使用connect as sysdba登录。但是root仍然可以将参数更改回去。所以传统一直认为是没有办法可以解决。我想到了另一个办法可以用人工干预的方式起一个监控作用。其实很简单。写一个shell监控参数文件的状况,写到crontab中,时刻执行。当然root可以更改crontab,或者伪造shell脚本生成的log。所以这也不是解决之道。

  其实这个和Solaris本身设计有很大的关系,因为系统本身的root权限是至高无上的,所以导致Oracle本身最开始设计时无法阻止。一直到10g第二版才有相关的组件Oracle DataBase Vault可以侧面解决。使用 Oracle Database Vault 限制特权用户访问专用应用程序数据:http://www.oracle.com/technology/global/cn/obe/10gr2_db_single/security/dv/datavault_otn.htm。还有一个Oracle Audit Vault,演示在这里:www.rayfile.com/files/8957dc0c-1463-11de-80a8-0014221b798a/

  Sql-Sever用户可能会笑,说Oracle连这个都做不到。但是Sql-Server也必须要通过域控制才能完满做到嘛。

  最后,我很纳闷儿,因为我问了好多朋友,或者朋友的朋友,都说无法解决这个问题。甚至银行系统用的Oracle数据库居然也没有考虑这个问题(只限国内),我无语!我们的钱就靠root帐号持有者的责任感?难怪我们的手机随时都有莫名电话、短信骚扰,银行如此,通信等行业我不敢想了。上面说的产品限制了DBA的权限,使DBA只需要维护Oracle本身,而不是干预应用。

版权声明 »

可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
本文url:http://netfire.name/archives/20090319/326.html

日志信息 »

该日志于2009-03-19 16:46由 NetFire 发表在代码生活分类下, 评论已关闭。

AdSense »

没有评论

抱歉,评论被关闭

返回顶部