重命名时的 Oracle 12C 审计触发器

Posted

技术标签:

【中文标题】重命名时的 Oracle 12C 审计触发器【英文标题】:Oracle 12C Audit Trigger On Rename 【发布时间】:2016-07-27 11:48:54 【问题描述】:

我有一个用于源代码控制的审计触发器,我们在其中跟踪所有 oracle (12c) 对象修改。如何在重命名中获取“新”对象名称(无论是通过“alter”还是“rename”)?无论我是在“ALTER 或 RENAME 或 DDL ON DATABASE”之前还是之后触发触发器,我都会在 ORA_DICT_OBJ_NAME 中看到“旧”名称。

【问题讨论】:

【参考方案1】:

您可以使用函数ORA_SQL_TXT 捕获触发语句(通过函数输出参数),然后提取新对象的名称。

编辑: 我用ORA_SQL_TXT;替换了ORA_SQL_TEXT

【讨论】:

谢谢!我能够做到这一点!如果 ora_sysevent = 'RENAME' 然后声明 n PLS_INTEGER; sql_text sys.dbms_standard.ora_name_list_t;开始 n := ora_sql_txt(sql_text); FOR i IN 1..n 循环 v_obj_original := v_obj_original || sql_text(i);结束循环;当其他人出现异常时 v_obj_original := 'Exception getting DDL: ' || SQL代码 || ' - ' || SQLERRM || '在' || TO_CHAR(SYSDATE, 'HH24:MI');结尾;如果结束;

以上是关于重命名时的 Oracle 12C 审计触发器的主要内容,如果未能解决你的问题,请参考以下文章

oracle12c 中的审计触发器正在编译错误

如何在oracle表单12c中为Shift + A按键创建触发器

Oracle 12C 新特性之在线重命名迁移活跃的数据文件

使用 oracle 触发器审计 50 列

使用 oracle 触发器审计 50 列

基本 Oracle 触发器审计表