2017-05-26 135 views
0

我需要創建一個oracle用戶只有一個星期。從SO中的問題中,我知道我可以創建它,並使其密碼到期。就像他們在這裏說創建oracle用戶的過期日期

Change Oracle User Password Expiry Date

但是,當用戶試圖訪問,他可以更改密碼,可以重新登錄。

例如與密碼,我可以把它到期創建一個用戶,然後一個配置文件是這樣的:

create user myuser identified by mypasswordr; 
create role mynormaluser; 
grant create session to mynormaluser; 
grant mynormaluser to myuser; 



CREATE PROFILE minuevoperfil LIMIT 
    PASSWORD_LIFE_TIME 1/24/60/60 
    PASSWORD_GRACE_TIME 1/24/60; 

ALTER USER myuser PROFILE minuevoperfil; 

有沒有類似「USER_LIFE_TIME」。這使我可以讓用戶在一段時間後無法登錄?

非常感謝

+0

我不認爲有直接的方式來指定。你可以在LOGON事件上創建一個觸發器,並檢查它是否是有問題的用戶(或者把登錄日期和表格一起放入表格),然後如果是過期範圍,則會引發錯誤。問題在於觸發器會觸發EVERY登錄,這可能會影響性能。 – OldProgrammer

回答

0

我不是太熟悉DBMS_JOBS,也許這就是不走的好方法,但也許他們可以使用嗎?

begin 
    sys.dbms_job.submit(job => :job, 
         what => 'SQL TO DELETE USER HERE', 
         next_date => to_date('27-05-2017 01:00:00', 'dd-mm-yyyy hh24:mi:ss'), 
         interval => null); 
    commit; 
end;