如题!

解决方案 »

  1.   

    用有DBA权限的用户登录,然后执行如下语句:SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE='TRIGGER' AND OBJECT_NAME='触发器名字'
      

  2.   

    SQL> select owner,trigger_name from dba_triggers;SQL> select owner from dba_triggers where trigger_name= 'XXX' ;
      

  3.   

    SQL> desc dba_triggers
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     OWNER                                              VARCHAR2(30)
     TRIGGER_NAME                                       VARCHAR2(30)
     TRIGGER_TYPE                                       VARCHAR2(16)
     TRIGGERING_EVENT                                   VARCHAR2(227)
     TABLE_OWNER                                        VARCHAR2(30)
     BASE_OBJECT_TYPE                                   VARCHAR2(16)
     TABLE_NAME                                         VARCHAR2(30)
     COLUMN_NAME                                        VARCHAR2(4000)
     REFERENCING_NAMES                                  VARCHAR2(128)
     WHEN_CLAUSE                                        VARCHAR2(4000)
     STATUS                                             VARCHAR2(8)
     DESCRIPTION                                        VARCHAR2(4000)
     ACTION_TYPE                                        VARCHAR2(11)
     TRIGGER_BODY                                       LONG
      

  4.   

    如一楼所说,
    SELECT owner,created,OBJECT_NAME FROM ALL_OBJECTS WHERE OBJECT_TYPE='TRIGGER' AND OBJECT_NAME='触发器名字'
    这个语句,只能查到创建时间(created)和所属用户(owner)。
    但是可以得出是什么时间,以这owner用户的身份来创建的这个触发器。
      

  5.   

    谢谢ls各位。我想把问题再补充一下,通过pl/sql直接就可以看到新增的触发器属于哪个用户,即是哪个用户创建的。现在情况是这样的,大家都公用一个用户(用户名:lf)连接数据库,我想知道是哪个客户端,用这个公用的用户名:lf,建的触发器,即查到连接者的ip、主机名或mac地址,谢谢!
      

  6.   

    说错了,应该是用户事件触发器.
    触发器里使用SYS_CONTEXT去获取客户端相关信息.