Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Abgelaufenes Datenbankkennwort und noch aktive Verbindungen

Wenn ein Benutzerkennwort abläuft in der Mitte einer bereits hergestellten Verbindung (Sitzung) wird eine Benutzersitzung nicht beendet - die Sitzung wird nicht automatisch geschlossen. Der Benutzer kann fortfahren und wird aufgefordert (SQL*PLUS oder andere Tools), sein Passwort beim ersten Anmeldeversuch nach Ablauf zu ändern. Das ist das richtige Verhalten. Lassen Sie einen Benutzer beenden, was er bereits begonnen hat. Wenn Sie in der Lage sind, eine Verbindung zu schließen, die eine Benutzersitzung direkt nach dem Ablauf beendet, werden Sie dies wahrscheinlich nicht sauber tun, und die Arbeit des Benutzers geht verloren.

Bearbeiten

Lassen Sie uns zunächst Sitzung und Verbindung definieren. Sitzung ist eine logische Entität und Verbindung ist eine physische. Und auf einer Verbindung können 0 bis n Sitzungen aufgebaut sein (Sie können sie mit sql*plus CLI und Informationen von v$process testen Aussicht). Daher tendiert der Kennwortablauf eher zur Benutzersitzung als zur Verbindung, und wenn sich ein Benutzer abmeldet, besteht seine Sitzung nicht mehr, aber die Verbindung kann immer noch hergestellt und geschlossen werden, wenn eine Client-Anwendung geschlossen wird.

Ja es ist möglich. Wenn Sie absolut sicher sind, dass ein Benutzer oder eine Anwendung ihre Arbeit erledigt hat und einfach vergessen hat, eine Sitzung zu schließen, können Sie alter system kill session <<SID>>, <<Serial_Number>> verwenden to kill(ihnen muss alter system privilege gewährt werden ) die Sitzung(en).

Sie könnten ein Profil erstellen mit IDLE_TIME Option angegeben.

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

und einem Benutzer zuweisen. Wenn eine Sitzungsinaktivitätszeit – Zeit, in der eine Sitzung keine SQL-Aufrufe durchführt, überschreitet <<num_of_minutes>> Oracle setzt die aktuelle Transaktion zurück und beendet diese Sitzung.

Sie können auch das Beenden einer Verbindung konfigurieren, die nicht mehr verwendet wird, indem Sie SQLNET.EXPIRE_TIME festlegen Parameter , in Minuten, in sqlnet.ora Datei.