Oracle基于系統级触发器的审计功能.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle基于系統级触发器的审计功能

基于系统级触发器的审计功能 从Oracle8i开始,Oracle引入了特殊的触发器,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,INSERT,UPDATE和DELETE)。这些系统级别的触发器包括: ????????? 数据库启动/关闭触发器 ????????? DDL触发器 ????????? 最终用户登陆/注销触发器 ????????? 系统错误触发器 ????????? DDL触发器 使用这些触发器,可以对数据库发生的一些重要事件进行审计。 当触发事件发生的时候,可以启动触发器。在触发器中,可以通过DML操作将审计操作记录在日志表中,或者通过抛出一个EXCEPTION来制止某种操作。在触发器中,可以通过使用系统事件函数(Event Attribute Functions)来获取一些信息。以下是系统事件函数的详细情况: 系统事件函数 函数名称 类型 描述 备注 ora_client_ip_address VARCHAR2 客户端的IP地址 ? ora_database_name VARCHAR2(50) 数据库名称 ? ora_dict_obj_name VARCHAR2(30) DDL发生的对象名称 ? ora_dict_obj_owner VARCHAR2(30) DDL发生对象的宿主 ? ora_dict_obj_type VARCHAR2(20) 对象类别 ? ora_is_alter_column (column_name IN VARCHAR2) BOOLEAN 当某列被修改的时候返回真,否则返回假 ? ora_is_drop_column (column_name IN VARCHAR2) BOOLEAN 当某列被删除的时候返回真,否则返回假 ? ora_login_user VARCHAR2(30) 登录的用户名 ? ora_sysevent VARCHAR2(20) 系统事件的名称 ? is_servererror(error_num in integer) BOLEAN 返回系统是否产生某个错误 ? ORACLE 8I开始,提供了一个新的函数“SYS_CONTEXT”。通过使用SYS_CONTEXT函数可以获得一些和用户相关的信息,比如: SELECT sys_context(USERENV,TERMINAL) FROM DUAL; 用户环境的取值包括: ????????? TERMINAL:客户端操作系统终端的名称???? ????????? LANGUAGE:NLS_LANG的值? ????????? LANG? :ISO字符集的名称.? ????????? SESSIONID:SESSION的ID ????????? INSTANCE:实例的ID ????????? ISDBA:是否具有DBA权限 ????????? CLIENT_INFO:64字节的用户信息,可以用DBMS_APPLICATION_INFO设置的值: ????????? NLS_TERRITORY :当前SESSION的 territory ????????? NLS_CURRENCY:当前SESSION的货币符 ????????? NLS_CALENDAR:当前SESSION的历法 ????????? NLS_DATE_FORMAT:当前SESSION的日期格式 ????????? NLS_DATE_LANGUAGE :显示日期的语言 ????????? NLS_SORT:排序方式(BINARY 或者linguistic) ????????? CURRENT_USER:当前SESSION拥有权限的用户的名称(比如说当前SESSION是SYS,但是正在执行system.myproc,那么current_user就是system) ????????? CURRENT_USERID :当前SESSION拥有的权限的用户的ID ????????? SESSION_USER:session所属的用户名 ????????? SESSION_USERID:当前SESSION所属的用户id ????????? CURRENT_SCHEMA:当前SESSION缺省的SCHEMA名称,可以用SESSION SET CURRENT_SCHEMA 语句修改.? ????????? CURRENT_SCHEMAID :当前SESSION缺省的SCHEMA的ID ????????? PROXY_USER:打开当前SESSION的用户的名称 ????????? PROXY_USERID:打开当前SESSION的用户的ID ????????? DB_DOMAIN:当前数据库的

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档