1. 程式人生 > >Oracle:新增使用者登入提示“ORA-04098:觸發器‘GD.ON_LOGON_TRIGGER’無效且未通過重新驗證”

Oracle:新增使用者登入提示“ORA-04098:觸發器‘GD.ON_LOGON_TRIGGER’無效且未通過重新驗證”

接著上一篇建立一個只有檢視許可權的使用者,在測試環境,新建賬號後嘗試登入,提示如下:

1.看提示是base庫的觸發器有問題了,所以先定位到這個觸發器

SELECT * FROM DBA_OBJECTS WHERE OBJECT_TYPE='TRIGGER'and OBJECT_NAME = '
ON_LOGON_TRIGGER
';

它的狀態是無效的

2.通過pl/sql登入base庫,檢視觸發器Triggers,找到ON_LOGON_TRIGGER

這個觸發器上面有個紅色的叉號,可能需要重新編譯一下。

直接右鍵選擇Recompile,提示錯誤

   

為了看到錯誤詳情,在Command Window視窗重新編譯一次

 錯誤出現在那個“/”

3.檢視這個觸發器,右鍵選擇View

 

 

4.把觸發器刪掉,重新建立該觸發器就好了

create or replace trigger on_logon_trigger after logon on database 
begin dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));end;

完成後再次登入新建的使用者,發現可以正常登入了