1 、如何启用审计?修改数据库的初始化参数audit_trail ,从none 修改为你需要的值。它的可选项有很多,如下所示:AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }我们选择db 值作为该参数值。使得审计功能处于打开状态,将审计记录保存在数据库sys.aud$表中。修改初始化参数文件spfile 中的此参数配置值ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE sid='*';注意,这个参数需要数据库实例重启之后才能生效。 2 、审计有哪些功能可以审计数据库对象的DML 和DDL 操作,以及查询、执行和一些系统事件如登录和退出。如下所示:DDL (CREATE, ALTER & DROP of objects)DML (INSERT UPDATE, DELETE)SELECTEXECUTESYSTEM EVENTS (LOGON, LOGOFF etc) 每个功能还有选项,如在每个会话还是每个访问中审计,是成功或不成功时审计。完整的audit 的语法如下:AUDIT { sql_statement_clause | schema_object_clause | NETWORK } [ BY { SESSION | ACCESS } ] [ WHENEVER [ NOT ] SUCCESSFUL ] ; 3 、如何审计某表的数据插入操作现在的问题是找出什么应用向表插入了记录。在应用程序的逻辑上,这个表的数据只会更新,不会插入。因此,在审计功能打开后,使用这个下列命令审计某表的插入操作。audit insert on table_name by access;执行成功后,此表上每一次插入操作都会被记录在sys.aud$ 表中。 4 、如何查看审计结果可以查询dba_audit_trail 系统视图,该视图显示就是sys.aud$ 表保存的审计结果。这个表的存储空间是system ,如果你需要大量长期审计某些操作,请注意维护这张表。一般维护方法有两个,定期执行truncate 操作和将表的存储表空间移植到一个新建的独立表空间上。 5 、如何取消审计使用noaudit 代替audit 命令符就可, 如noaudit insert on table_name by access;