Ако паролата на потребителя изтече по средата на вече установена връзка (сесия), това няма да прекрати потребителска сесия - сесията няма да бъде затворена автоматично. Потребителят ще може да продължи и ще бъде подканен (SQL*PLUS или други инструменти) да промени своята парола при първия опит за влизане след изтичане. Това е правилното поведение. Нека потребителят завърши това, което вече е започнал. Ако можете да затворите връзка, убивайки потребителска сесия веднага след изтичането й, вероятно няма да го направите чисто и работата на потребителя ще бъде загубена.
Редактиране
Първо нека дефинираме сесия и връзка. Сесията е логическа единица, а връзката е физическа. И една връзка може да има от 0 до n сесии, установени върху нея (Можете да я тествате, като използвате sql*plus CLI и информация от v$process
изглед). По този начин изтичането на паролата зависи повече от потребителската сесия, отколкото от връзката и когато потребител излезе, сесията му престава да съществува, но връзката все още може да бъде установена и затворена, когато клиентското приложение е затворено.
Да, възможно е. ако сте абсолютно сигурни, че потребител или приложение са си свършили работата и просто са забравили да затворят сесия, можете да използвате alter system kill session <<SID>>, <<Serial_Number>>
за убиване (трябва да имате alter system privilege
) сесията(ите).
Можете да създадете профил
с IDLE_TIME
посочена опция.
create profile <<Profile_name>> limit idle_time <<num_of_minutes>>
и го присвоете на потребител. Когато времето за неактивност на сесия - времето, когато сесията не извършва никакви SQL извиквания, надвишава <<num_of_minutes>>
Oracle ще върне текущата транзакция и ще прекрати тази сесия.
Можете също така да конфигурирате прекратяване на връзка, която вече не се използва, като зададете SQLNET.EXPIRE_TIME
параметър
, за минути, в sqlnet.ora
файл.