sql >> Base de Datos >  >> RDS >> Oracle

Contraseña de base de datos caducada y conexiones aún activas

Si la caducidad de la contraseña de un usuario se produce en el medio de una conexión (sesión) ya establecida, no finalizará una sesión de usuario; la sesión no se cerrará automáticamente. El usuario podrá continuar y se le pedirá (SQL*PLUS u otras herramientas) que cambie su contraseña en el primer intento de iniciar sesión después de la expiración. Que el comportamiento correcto. Deje que un usuario termine lo que ya ha comenzado. Si puede cerrar una conexión matando una sesión de usuario justo después de la expiración, probablemente no lo hará limpio y el trabajo del usuario se perderá.

Editar

En primer lugar, definamos sesión y conexión. La sesión es una entidad lógica y la conexión es física. Y una conexión puede tener de 0 a n sesiones establecidas (puede probarlo usando sql*plus CLI e información de v$process vista). Por lo tanto, la caducidad de la contraseña se inclina más hacia la sesión del usuario que hacia la conexión y cuando un usuario cierra la sesión, su sesión deja de existir, pero aún se puede establecer y cerrar la conexión cuando se cierra una aplicación cliente.

Si es posible. si está absolutamente seguro de que un usuario o una aplicación hizo su trabajo y simplemente olvidó cerrar una sesión, puede usar alter system kill session <<SID>>, <<Serial_Number>> para matar (se le debe otorgar alter system privilege ) la(s) sesión(es).

Podría crear un perfil con IDLE_TIME opción especificada.

create profile <<Profile_name>> limit idle_time <<num_of_minutes>>

y asignarlo a un usuario. Cuando el tiempo de inactividad de una sesión:el tiempo en que una sesión no realiza ninguna llamada SQL supera <<num_of_minutes>> Oracle revertirá la transacción actual y finalizará esa sesión.

También puede configurar la finalización de una conexión que ya no está en uso configurando SQLNET.EXPIRE_TIME parámetro , en minutos, en el sqlnet.ora expediente.