Oracle10g 有没有文件跟踪 sqlplus 用户的所有操作历史记录呢?

解决方案 »

  1.   

    我不是说了吗?你可以启动oracle的审计功能.或者打开trace功能.关键是这样会耗费你很多的空间.不建议这样做呀.
      

  2.   

    有一些参数设置默认是会生成跟踪文件,但一般较少,
    在想了解数据库的某些性能或动作情况是手动启用。

    alter database <参数>  to trace;
    trace的默认路径参数可以查询:
    show paramete user_dump_dest
    然后想方便点使用EM去设置不就行了
      

  3.   

    审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的 SYS.AUD$表中,可通过视图dba_audit_trail查看)中。默认情况下审计是没有开启的。不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限连接Instance;启动数据库;关闭数据库。下列步骤可以设置ORACLE的审计功能:
    1.修改参数文件(init<sid>.ora,如果使用服务器参数文件使用alter system set<parameter>=<value> scope=spfile|both,设置AUDIT_TRAIL参数,并且重启数据库。AUDIT_TRAIL的取值如下: DB/TRUE:启动审计功能,并且把审计结果存放在数据库的SYS.AUD$表中OS:启动审计功能,并把审计结果存放在操作系统的审计信息中DB_EXTENDED:具有DB/TRUE的功能,另外填写AUD$的SQLBIND和SQLTEXT字段NONE/FALSE:关闭审计功能       2.如果设置AUDIT_TRAIL = OS,还需要修改参数AUDIT_FILE_DEST。如果操作系统支持设置AUDIT_TRAIL=OS,文件会自动存放在AUDIT_FILE_DEST所指定的目录下,并且文件名包含进程的PID。 比如:AUDIT_FILE_DEST = $ORACLE_HOME/rdbms/audit$ ls -l $ORACLE_HOME/rdbms/audit-rw-rw---- 1 ora92   dba       881 Mar 17 09:57 ora_13264.aud$ ps -ef|grep 13264ora92 13264 13235 0 09:56:43 ? 0:00 oracleV92 (DESCRIPTION=(LOCAL=Y)SQL> select spid, program, username from v$process;SPID PROGRAM                                USERNAME------ -------------------------------------------- -------------...13264       oracle@frhp11 (TNS V1-V3)                   ora92  注意:WINDOWS NT不使用AUDIT_FILE_DEST参数,如果使用OS设置,那么审计信息会存放在WINDOWS NT的事件日志里。 3.确认审计相关的表是否已经安装SQLPLUS> connect / AS SYSDBASQLPLUS> select * from sys.aud$; --没有记录返回SQLPLUS> select * from dba_audit_trail;--没有记录返回如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。
    SQLPLUS> connect / as sysdbaSQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计信息。  4.关闭并重启数据库
    5.设置所需要的审计信息下面是一个例子SQL> connect system/managerSQL> grant audit system to scott;   SQL> connect scott/tigerSQL> audit session;停止审计:SQL> noaudit session;