我们的数据库是oracle 816。我们单位有400台终端,有个别职工查询数据库中的信息卖钱。作为信息部门工程师的我,有责任保卫信息安全。因为我们的系统是著名的成熟系统,了解该系统的社会上的工程师较多。单位有些人就请这些高手来窃取信息。我对数据库信息定期加密了,他们就设计个trigger,在我加密前就把数据迁移到某个表中。我亲眼看到他们创建了trigger,但是在单位的几所大楼里,我根本不可能查询到是谁。但是我根据v¥session查询到机器名,但是无法解析其ip地址,也许是他们把ip地址伪装了。请为高手,虽然我现在可以把他们创建的trigger删除,但是我想保留罪证,再者不想打草惊蛇。我现在想得到他们的mac地址,可以吗?他们和信息系统的操作人员串通,而操作人员必定有数据库某种程度的权限,所以做到绝对安全很难。用数据库审计是不是加大数据库的负担?怎么开启审计?oracle中某个用户自己创建的表,自己就能drop吗?问的比较多,理解我的心情,谢谢。

解决方案 »

  1.   

    审计功能会加大系统负担,这是肯定的。启动审计:
    修改数据库INIT.ORA文件中的audit_trail = true(注意把它前面的注释符#去掉)
    重新启动数据库
    DOS下执行
    SVRMGRL
    CONNECT INTERNAL/ORACLE
    SHUTDOWN IMMEDIATE
    STARTUP
    然后用DBA用户登陆SQL*PLUS
    CONNECT SYSTEM/MANAGER
    创建一个审计:
    SQL> audit create table by access whenever successful;审计已成功。
    SQL> select sessionid SID,userid USID,action# ACT,obj$name OBNAME,TIMESTAMP# TIME FROM SYS.AUD$; SID   USID   ACT   OBNAME   TIME
    -----  ------ ---- -------  ------
    202   SYSTEM    1     A     2002-08-24 00:59:01说明审计已经启动。