2017-05-26 2 views
0

Ich muss einen Oracle-Benutzer nur für eine Woche erstellen. Aus Fragen in SO weiß ich, dass ich es erstellen kann und sein Passwort ablaufen lassen kann. Wie sie sagen hierOrakelbenutzer mit einem Ablaufdatum erstellen

Change Oracle User Password Expiry Date

Aber wenn der Benutzer zugreifen will, kann er das Passwort ändern und wieder anmelden können.

Zum Beispiel mit dem Passwort, ich kann es einem Benutzer machen ablaufen zu schaffen und dann ein Profil wie folgt aus:

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; 

Gibt es so etwas wie „USER_LIFE_TIME“. Das erlaubt mir, den Benutzer nach einiger Zeit nicht einloggen zu können?

Vielen Dank

+0

Ich glaube nicht, dass es eine direkte Möglichkeit gibt, das zu spezifizieren. Sie könnten einen Auslöser für das LOGON-Ereignis erstellen und prüfen, ob es sich um den betreffenden Benutzer handelt (oder eine Tabelle mit dem Anmeldedatum einfügen). Wenn der Bereich außerhalb des Datumsbereichs liegt, wird ein Fehler ausgelöst. Problem damit ist, dass der Trigger für JEDEN Login ausgelöst wird, was sich auf die Leistung auswirken könnte. – OldProgrammer

Antwort

0

ich mit DBMS_jobs nicht allzu vertraut bin, vielleicht ist dies der gute Weg nicht zu gehen, aber vielleicht könnte sie verwendet werden?

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;