Hvis en brugeradgangskode udløber i midten af en allerede etableret forbindelse(session), vil det ikke afslutte en brugersession - sessionen lukkes ikke automatisk. Brugeren vil være i stand til at fortsætte og blive bedt (SQL*PLUS eller andre værktøjer) om at ændre hans/hendes adgangskode ved første forsøg på at logge på efter udløbet. Det er den rigtige adfærd. Lad en bruger afslutte det, han/hun allerede har startet. Hvis du er i stand til at lukke en forbindelse, der dræber en brugersession lige efter udløbet, vil du sandsynligvis ikke gøre det rent, og brugerens arbejde går tabt.
Rediger
Lad os først og fremmest definere session og forbindelse. Session er en logisk enhed, og forbindelsen er fysisk. Og en forbindelse kan have fra 0 til n sessioner etableret på den (Du kan teste den ved hjælp af sql*plus CLI og information fra v$process
udsigt). Udløb af adgangskode hælder således mere mod brugersession end forbindelse, og når en bruger logger ud, ophører dens session med at eksistere, men forbindelsen kan stadig etableres og lukkes, når en klientapplikation lukkes.
Ja, det er muligt. hvis du er helt sikker på, at en bruger eller et program har fået deres arbejde udført og simpelthen har glemt at lukke en session, kan du bruge alter system kill session <<SID>>, <<Serial_Number>>
to kill(du skal have tildelt alter system privilege
) sessionen/sessionerne.
Du kan oprette en profil
med IDLE_TIME
indstilling angivet.
create profile <<Profile_name>> limit idle_time <<num_of_minutes>>
og tildele det til en bruger. Når en sessionsinaktivitetstid - tiden, hvor en session ikke foretager nogen SQL-kald, overstiger <<num_of_minutes>>
Oracle vil rulle den aktuelle transaktion tilbage og afslutte den session.
Du kan også konfigurere afslutning af en forbindelse, der ikke længere er i brug ved at indstille SQLNET.EXPIRE_TIME
parameter
, på få minutter, i sqlnet.ora
fil.