首页>计算机>Oracle认证>考试信息>正文
Oracle数据安全面面观(2)

www.zige365.com 2007-8-4 16:14:33 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
(二)来自内部的另外一个隐患--用户管理以及密码问题

    在这里,其实作为一个差不多点的数据库管理员都很清楚,Oracle数据库本身就使用了很多种手段来加强数据库的安全性,经常见到的就有密码,角色,权限等等。那么我们就从最简单的DBSNMP说起:

    Oralce数据库如果采用典型安装后,自动创建了一个叫做DBSNMP的用户,该用户负责运行Oracle系统的智能代理(Intelligent Agent),该用户的缺省密码也是“DBSNMP”。如果忘记修改该用户的口令,任何人都可以通过该用户存取数据库系统。现在我们来看一下该用户具有哪些权限和角色,然后来分析一下该用户对数据库系统可能造成的损失。

    启动SQL/PLUS程序,使用该用户登录进入:

SQL> select * from session_privs; 
CREATE SESSION 
ALTER SESSION 
UNLIMITED TABLESPACE 
CREATE TABLE 
CREATE CLUSTER 
CREATE SYNONYM 
CREATE PUBLIC SYNONYM 
CREATE VIEW 
CREATE SEQUENCE 
CREATE DATABASE LINK 
CREATE PROCEDURE 
CREATE TRIGGER 
ANALYZE ANY 
CREATE TYPE 
CREATE OPERATOR 
CREATE INDEXTYPE


    可以看到该用户不是SYS或SYSTEM管理用户,然而,它却具有两个系统级权限:UNLIMITED TABLESPACE和CREATE PUBLIC SYNONYM。

    看到这两个权限你应该马上想到,这些都是安全隐患,尤其是UNLIMITED TABLESPACE,它是破坏数据库系统的攻击点之一。如果这时候你还依然认为,即使有人利用这个没有修改的口令登录进数据库也造成不了什么损失的话,我就不得不提醒你:该用户具有UNLIMITED TABLESPACE的系统权限,它可以写一个小的脚本,然后恶意将系统用垃圾数据填满,这样数据库系统也就无法运行,并将直接导致最终的瘫痪。目前很多数据库系统都要求7X24的工作,如果出现了系统用垃圾数据填满的情况,那么,等数据库系统恢复时,恐怕不可挽回的损失已经造成了。

     可是除了DBSNMP还有很多其他的用户,怎么办呢?让我们先看一下目前普遍存在于Oracle数据库中的用户管理问题:

    (1)权限过大:对ORACLE数据库编程和浏览的一般用户常常具有DBA (数据库管理员权限),能对数据库系统做任何修改或删除。

    (2)安全性差:很多ORACLE用户缺省存储位置都在系统表空间,这样不仅影响系统的正常工作,而且不同用户的数据信息互相影响、透明,保密性差。随着数据的不断加入,有可能使整个数据库系统崩溃。

    (3)密码有规律:在ORACLE调试初期形成的用户名和密码一致的不良习惯保留到现在;系统用户SYS和SYSTEM的密码也众所皆知。

    知道了这些普遍的“毛病”,我们怎么做呢?下面是我的一些建议:

(1)ORACLE DBA (数据库管理员)的规范

    ·SUN Solaris操作系统下ORACLE用户密码应严格保密,绝不该把密码设成ORACLE;并指定专门的数据库管理员定期修改。

    ·ORACLE初始化建立的SYS和SYSTEM系统管理员用户密码应由原来MANAGER改成别的不易被记忆的字符串。

    ·ORACLE WEB SERVER的管理端口具备DBA浏览数据库的能力,因此其管理者ADMIN的密码也应保密,不该把密码设成MANAGER;并指定专门的数据库管理员定期修改。

    ·ORACLE DBA最好在SUN SPARC服务器控制台上用窗口式界面实现管理。前提是ORACLE用户启动服务器,然后在窗口式命令行下输入SVRMGRM,即启动了ORACLE SERVER MANAGER菜单式管理;用SYSDBA身份登录后,就可做数据库系统维护工作了

本新闻共2页,当前在第1页  1  2  

我要投稿 新闻来源:赛迪网 编辑: 作者:
相关新闻
高手攻关心得:RHCE实战详细经验
如何学习Oracle?
我学Oracle和考OCP的经验与大家一起分享
使用Oracle9i数据库程序的相关注意事项
OCP DBA考证轻松过关详解
Oracle 的入门心得