Jeśli wygaśnięcie hasła użytkownika nastąpi w środku już nawiązanego połączenia (sesji), nie zakończy sesji użytkownika - sesja nie zostanie automatycznie zamknięta. Użytkownik będzie mógł kontynuować i poproszony (SQL*PLUS lub inne narzędzia) o zmianę hasła przy pierwszej próbie logowania po wygaśnięciu. To właściwe zachowanie. Pozwól użytkownikowi dokończyć to, co już zaczął. Jeśli uda Ci się zamknąć połączenie, zabijając sesję użytkownika zaraz po wygaśnięciu, prawdopodobnie nie zrobisz tego w sposób czysty, a praca użytkownika zostanie utracona.
Edytuj
Przede wszystkim zdefiniujmy sesję i połączenie. Sesja jest bytem logicznym, a połączenie fizycznym. Jedno połączenie może mieć nawiązane od 0 do n sesji (możesz je przetestować za pomocą sql*plus CLI i informacji z v$process
pogląd). W związku z tym wygaśnięcie hasła jest bardziej nastawione na sesję użytkownika niż na połączenie, a kiedy użytkownik się wyloguje, jego sesja przestaje istnieć, ale połączenie można nadal nawiązać i zamknąć, gdy aplikacja kliencka zostanie zamknięta.
Tak, to możliwe. jeśli masz absolutną pewność, że użytkownik lub aplikacja wykonała swoją pracę i po prostu zapomniałeś zamknąć sesję, możesz użyć alter system kill session <<SID>>, <<Serial_Number>>
zabić (musisz mieć przyznane alter system privilege
) sesja(y).
Możesz utworzyć profil
z IDLE_TIME
określona opcja.
create profile <<Profile_name>> limit idle_time <<num_of_minutes>>
i przypisz go do użytkownika. Gdy czas nieaktywności sesji — czas, w którym sesja nie wykonuje żadnych wywołań SQL, przekracza <<num_of_minutes>>
Oracle wycofa bieżącą transakcję i zakończy tę sesję.
Możesz również skonfigurować zakończenie połączenia, które nie jest już używane, ustawiając SQLNET.EXPIRE_TIME
parametr
, w kilka minut, w sqlnet.ora
plik.