- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 INVARCHAR2) BOOLEAN 当某列被修改的时候返回真,否则返回假 ? ora_is_drop_column(column_name INVARCHAR2) 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:当前数据库的
您可能关注的文档
- OO真經关于面向对象的哲学体系及科学体系的探讨.doc
- OpenCVKalman濾波的结构和函数定义.doc
- openGL投影矩陣原理及数学推导.doc
- OpenMP應用基础实验代码.doc
- OpenSUSE12.3操作系統安装.doc
- Opera11使用技巧讓你的Opera11更好用.doc
- OpenSuseLinux服務器配置方法.doc
- Opera瀏览器常用命令大全_opera使用方法_鼠标手势定义.doc
- OQC培訓教程.doc
- OPPM工具在項目管理中的应用.docx
- 个人借款合同范本(个人借款合同范本模板) .pdf
- 东营半导体材料项目投资计划书 .pdf
- 分析参考ntz0 xx swahili paper 1 hl markscheme里语.pdf
- 文稿教程说明.pdf
- 参考服务器软件asp net part 6.pdf
- latin paper 2 hl markscheme拉丁语级分数表.pdf
- 专论问答monographs questions and answersiarc专著.pdf
- mhz临界模式功率因数校正电路损耗模型.pdf
- 分析导入android app os mainactivity java主活动.pdf
- sigma-z共7 aldrich安全数据表.pdf
文档评论(0)