Poniedziałek rano w pracy to zazwyczaj nie jest dobra pora na awarię. Niestety awarie nie wybierają a niektórym udałoby się zapobiec gdyby nie … inne awarie J
Pracownicy nie mogą pracować więc pewnie coś poważnego musiało się stać.
Zalogowałem się do klienta i podczas próby zalogowania na właściciela schematu zobaczyłem dość przyjemny jak na ‘awarię’ komunikat:
ORA-28001: the password has expired
Sprawdziłem więc jaki profil ma przypisany nieszczęsny użytkownik i kiedy wygasło konto
Na zrzucie powyżej widać że dla użytkownika nie ma stworzonej specjalnej grupy a więc można przyjąć że jego hasło wygasa co 180 dni jeśli nikt wcześniej nie zmieniał nic w profilu Default. Ale sprawdzić można to poniższym zapytaniem
Jeśli istnieje taka konieczność to należy zmienić parametr password_life_time choć należy pamiętać że nie jest to zalecane ze względów bezpieczeństwa
I jeszcze raz wykonujemy zapytanie czy przy parametrze jest wartość unlimited.
Dobry zwyczaj:
Dobrą praktyką jest stworzenie dedykowanego profilu na potrzeby działania systemu a nie korzystanie z default’owego. Są użytkownicy których zmiana hasła nie jest pożądana ponieważ korzystają z niego aplikacje zewnętrzne i przy każdym zmianie hasła konieczna byłaby ich zmiana. Natomiast dla operatorów korzystających z aplikacji zmiana hasła co 180 dni jest jak najbardziej wskazana.
Oczywiście powyższej sytuacji można było uniknąć.
Użyte skrypty:
SELECT S.PROFILE, S.EXPIRY_DATE
FROM DBA_USERS S
WHERE S.USERNAME = 'NAZWA_UŻYTKOWNIKA’;
SELECT RESOURCE_NAME, LIMIT
FROM DBA_PROFILES
WHERE PROFILE = 'DEFAULT’;
alter profile DEFAULT LIMIT password_life_time UNLIMITED;