Oracle
 sql >> Database >  >> RDS >> Oracle

Password del database scaduta e connessioni ancora in vita

Se la scadenza di una password utente si verifica nel mezzo di una connessione (sessione) già stabilita, non terminerà una sessione utente - la sessione non verrà chiusa automaticamente. L'utente potrà procedere e richiedere (SQL*PLUS o altri strumenti) di modificare la propria password al primo tentativo di accesso dopo la scadenza. Che il comportamento giusto. Consenti a un utente di completare ciò che ha già iniziato. Se riesci a chiudere una connessione uccidendo una sessione utente subito dopo la scadenza, probabilmente non lo farai pulito e il lavoro dell'utente andrà perso.

Modifica

Prima di tutto definiamo sessione e connessione. La sessione è un'entità logica e la connessione è fisica. E una connessione può avere da 0 a n sessioni stabilite su di essa (puoi testarla usando sql*plus CLI e informazioni da v$process Visualizza). Pertanto la scadenza della password è più legata alla sessione dell'utente che alla connessione e quando un utente si disconnette, la sua sessione cessa di esistere, ma la connessione può ancora essere stabilita e chiusa quando un'applicazione client viene chiusa.

Si è possibile. se sei assolutamente sicuro che un utente o un'applicazione abbia terminato il proprio lavoro e semplicemente hai dimenticato di chiudere una sessione, puoi usare alter system kill session <<SID>>, <<Serial_Number>> per uccidere(devi essere concesso alter system privilege ) la/le sessione/i.

Puoi creare un profilo con IDLE_TIME opzione specificata.

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

e assegnarlo a un utente. Quando il tempo di inattività di una sessione - tempo in cui una sessione non sta effettuando chiamate SQL supera <<num_of_minutes>> Oracle annullerà la transazione corrente e terminerà quella sessione.

Puoi anche configurare la terminazione di una connessione che non è più in uso impostando SQLNET.EXPIRE_TIME parametro , in pochi minuti, in sqlnet.ora file.