Verwirrung um Oracle Profil Parameter
Ich hatte mich lange mit der richtigen Konfiguration der Profile beschäftigt und natürlich auch die Oracle Dokmentation zu Rate gezogen, weil sich der ein oder andere Parameter nicht direkt von selbst erklärt. Gerade PASSWORD_REUSE_TIME und PASSWORD_REUSE_MAX sind solche Kandidaten, bei denen man sich vielleicht etwas zusammen reimen kann, aber ihr wirklicher Gebrauch erklärt sich erst durch einen Blick in die Dokumentation. Gesagt getan. Nach ein paar Minuten hatte ich mir mit Hilfe der Dokumentation eine passende Strategie zurecht gelegt. Als ich die Parameter aber bequem über den OEM Konfigurieren will, bekomme ich eine widersprüchliche Fehlermeldung.
Die Dokumentation weißt darauf hin, dass die Parameter in Verbindung miteinander genutzt werden. PASSWORD_REUSE_TIME gibt an wie lange ich ein Passwort nicht wiederverwenden kann und PASSWORD_REUSE_MAX gibt an wie oft ein Passwort geändert werden muss, bevor es wieder verwendet werden kann. Für beide Parameter muss ein Integer gesetzt werden, damit sie wirken. Setzt man für einen ein Integer und den anderen UNLIMITED bedeutet das, der User kann ein einmal genutztes Passwort niemals wieder verwenden.
PASSWORD_REUSE_TIME and PASSWORD_REUSE_MAX
These two parameters must be set in conjunction with each other. PASSWORD_REUSE_TIME specifies the number of days before which a password cannot be reused. PASSWORD_REUSE_MAX specifies the number of password changes required before the current password can be reused. For these parameter to have any effect, you must specify an integer for both of them.
- If you specify an integer for both of these parameters, then the user cannot reuse a password until the password has been changed the password the number of times specified for PASSWORD_REUSE_MAX during the number of days specified for PASSWORD_REUSE_TIME.
- If you specify an integer for either of these parameters and specify UNLIMITED for the other, then the user can never reuse a password.
(aus der Oracle Dokumentation)
PASSWORD_REUSE_TIME sollte also auf 1 und PASSWORD_REUSE_MAX auf 10 gesetzt werden. Was soviel heißt, dass der Benutzer das Passwort nach einem Tag wieder verwenden kann, vorrausgesetzt das Passwort wurde inzwischen 10 mal geändert. Für den „normalen“ User unwahrscheinlich, für das Audit ausreichend und für den vertrauten Administrator eine gute Möglichkeit im Fall der Fälle schnell wieder an das Initialpasswort heranzukommen. Die Doku gibt hier auch ein schönes Beispiel:
For example, if you specify PASSWORD_REUSE_TIME to 30 and PASSWORD_REUSE_MAX to 10, then the user can reuse the password after 30 days if the password has already been changed 10 times.
(aus der Oracle Dokumentation)
In der Überzeugung, dass ich nun ganz gut liege, begebe ich mich in den Oracle Enterprise Manager Cloud Control 12c und erhalte bei der Eingabe der Parameter folgende Fehlermeldung: If the number of passwords to keep is set to an integer valuem the number of days to keep them must be set to UNLIMITED.
(Screenshot: Oracle Enterprise Manager Cloud Control 12c – Datenbank > Sicherheit > Profile)
Das widerspricht aber der Oracle eigenen Dokumentation … ? Was soll ich jetzt glauben? Vielleicht weiß ein Leser hier mehr?
Wenn ich das ganze zu Fuß mache, per SQL-Plus kann ich die Parameter natürlich wie gewohnt setzen – ohne Fehlermeldung. Aber ein ungutes Gefühl bleibt.
Oracle Dokumentation: http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6010.htm
UPDATE: Wie ich nun beim stöbern im My Oracle Support herausgefunden habe, existiert dieses Problem schon sehr … seeeehr … seeehr lange, also der Bug Report wurde so Oktober 2004 … Zweitausendundvier! eingereicht. Scheinbar will man hier was in die Neuzeit retten 😉 Doc ID 1937232.1