1. Start
  2. Unternehmen
  3. Blog
  4. Neu in 19.12: Allmähliche Passwortänderung

Neu in 19.12: Allmähliche Passwortänderung

Der heutige Blogbeitrag dreht sich wieder um ein neues Feature der Oracle 19c Datenbank. Wir wollten das "Gradual Password Rollover" vorstellen. Das Feature wurde mit dem Release Update 19.12 eingeführt. Das Feature ermöglicht einen langsamen Passwortwechsel. Das bedeutet, ein neues Passwort für einen Datenbankbenutzer ersetzt nicht schlagartig das alte Passwort, sondern es gibt eine Übergangsphase, in der sowohl das alte als auch das neue Passwort gültig sind. Das macht den Passwortwechsel für Applikationen, in denen das Passwort möglicherweise fest hinterlegt ist, wesentlich einfacher. 

Die neue Funktionalität wird über Benutzerprofile gesteuert. Dazu wurde ein neuer Parameter "PASSWORD_ROLLOVER_TIME" eingeführt. Dessen Wert gibt an, für wieviel Tage sowohl das alte als auch das neue Passwort gültig sind. Standardmäßig gibt es keine Übergangszeit im DEFAULT Profile. Es können auch Werte kleiner als ein Tag eingestellt werden in dem beispielsweise 1/24 für eine Übergangszeit von Stunde angegeben wird.

Um die Funktion zu demonstrieren, legt man ein eigenes Profile an mit einer Übergangszeit von einem halben Tag. Dann erstellt man einen Nutzer an, weist ihm das neue Profile zu und vergibt zumindest CREATE SESSION Rechte.

 

SQL> CREATE PROFILE myprofile LIMIT
  2   FAILED_LOGIN_ATTEMPTS 4
  3   PASSWORD_LIFE_TIME 90
  4   PASSWORD_GRACE_TIME 3
  5   PASSWORD_ROLLOVER_TIME 1/2;
 
Profile created.

SQL> create user myuser identified by "1stPwd" profile myprofile;

User created.

SQL> grant create session to myuser;

Grant succeeded.

 

Jetzt kann man sich entsprechend als dieser Nutzer anmelden und auch direkt das eigene Passwort ändern.

 

C:\>sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Di Dez 7 14:31:30 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> conn myuser/1stPwd@vm121.support.robotron.de:1521/mmi
Connect durchgeführt.

SQL> select sysdate from dual;

SYSDATE
-------------------
07.12.2021 14:31:34

SQL> alter user myuser identified by "2ndPwd";

Benutzer wurde geändert.

 

In DBA_USERS sieht man nun sowohl den neuen Account Status und auch das Änderungsdatum, auf dem die Übergangszeit basiert.

 

SQL> select ACCOUNT_STATUS, PASSWORD_CHANGE_DATE from dba_users where username ='MYUSER';

ACCOUNT_STATUS                   PASSWORD_CHANGE_DAT
-------------------------------- -------------------
OPEN & IN ROLLOVER               07.12.2021 14:31:41

 

Entsprechend kann man sich an der Datenbank mit dem alten und auch mit dem neuen Passwort anmelden.

 

C:\>sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Di Dez 7 14:39:45 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> conn myuser/1stPwd@vm121.support.robotron.de:1521/mmi
Connect durchgeführt.

SQL> select sysdate from dual;

SYSDATE
-------------------
07.12.2021 14:39:49

SQL> conn myuser/2ndPwd@vm121.support.robotron.de:1521/mmi
Connect durchgeführt.

SQL> select sysdate from dual;

SYSDATE
-------------------
07.12.2021 14:39:57

 

Nach dem Ablauf der Übergangszeit funktioniert dann wie erwartet nur noch das neue Passwort. Bei Verwendung des alten Passwortes erhält man den altbekannten ORA-1017 Fehler.

 

C:\>sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Mi Dez 8 08:29:29 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

SQL> conn myuser/2ndPwd@vm121.support.robotron.de:1521/mmi
Connect durchgeführt.

SQL> select sysdate from dual;

SYSDATE
-------------------
08.12.2021 08:29:30

SQL> conn myuser/1stPwd@vm121.support.robotron.de:1521/mmi
ERROR:
ORA-01017: Benutzername/Kennwort ungültig; Anmeldung abgelehnt


Achtung: Sie sind nicht mehr mit ORACLE verbunden.

 

Aufpassen muss man als DBA nur, wenn man den Status der Benutzer kontrolliert. Denn offenbar bleibt der Status auch "OPEN & IN ROLLOVER" nachdem die Übergangszeit abgelaufen ist. Erst nach einer fehlerhaften Anmeldung wechselt der Status dann wieder auf "OPEN".

Wir finden, das ist ein wirklich nützliches Feature, dass mit dem Release Update Einzug gehalten hat. Und es ist immer eine gute Idee, nach der Veröffentlichung eines Release Updates mal in den New Features Guide zu schauen, denn da sind noch einige andere spannende Dinge dazugekommen. Einige davon, wie z.B. die SQL Macros, haben wir Ihnen auch schon vorgestellt. 

Kommentare

Keine Kommentare

Kommentar schreiben

* Diese Felder sind erforderlich