Methode: 1. Verwenden Sie die Anweisung „select sid,serial# from v$session where username=''“, um die Sitzungsinformationen abzufragen. 2. Verwenden Sie die Anweisung „alter system kill session“, um die Sitzung zu beenden . Löschen Sie den Benutzer erneut.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.
Die Oracle-Datenbank in der Testumgebung muss aktualisiert werden, wenn die Softwareentwicklungsversion aktualisiert wird, da dies nach längerer Nutzung der Testumgebung der Fall sein wird Manchmal sind immer mehr Daten darin enthalten. Zur Vereinfachung des Funktionstests sind die Daten in der Datenbank in der Testumgebung inkonsistent, was gewisse Auswirkungen und Störungen auf nachfolgende Versionen des Tests haben wird. Um die obige Situation zu vermeiden, werden im Allgemeinen alle Objekte unter dem aktuellen Datenbankbenutzer zuerst gelöscht und dann neu erstellt. Um jedoch alle Objekte und Daten eines Benutzers zu löschen, müssen Sie zunächst herausfinden, welche Objekte sich unter dem aktuellen Benutzer befinden, und diese dann mithilfe der Kaskadenlöschmethode löschen Wenn eine Verbindung besteht, die gelöscht werden soll, kann sie nicht gelöscht werden. Sie müssen die Sitzung zuerst beenden und sie dann löschen.
Zuerst müssen Sie das xshell-Tool verwenden, um eine Verbindung zum Oracle-Datenbankserver herzustellen (die Einführung erfolgt hier in der Linux-Umgebung, die Windows-Umgebung ist einfacher. Wenn der aktuelle Linux-Benutzer kein Oracle-Benutzer ist, müssen Sie zu wechseln). Geben Sie als Oracle-Benutzer den Befehl su - oracle switch ein. Führen Sie ihn unter dem Oracle-Benutzer sqlplus / als sysdba aus, melden Sie sich also als Administrator sys bei der Datenbank an und löschen Sie im Allgemeinen nur den Das Administratorkonto verfügt über Berechtigungen. Wenn Sie nur Datenbanktabellen und -daten abfragen, müssen Sie sich nur mit einem normalen Konto anmelden. Nach dem Herstellen der Verbindung werden Sie mit „Verbunden mit: Oracle-Datenbanken“ und anderen Eingabeaufforderungen aufgefordert, und die angezeigte Eingabeaufforderung wird zu SQL> Der Benutzer Die Bedeutung aller Objektinformationen. Wie in der Abbildung gezeigt, Fehler ORA-01940, kann der aktuell verbundene Benutzer nicht gelöscht werden
Wenn Sie mit dem Löschen fortfahren möchten, müssen Sie zuerst die Sitzungsinformationen des aktuell verbundenen Benutzers abfragen, ihn dann beenden und dann Löschen Sie es. Die Abfrageanweisung lautet: select sid,serial# from v$session where username='CQT'; beachten Sie den Unterschied in der Groß-/Kleinschreibung. Wie in der Abbildung gezeigt, werden mehrere mit dem Benutzer verbundene Sitzungsinformationen abgefragt. Es ist erforderlich, alle oben abgefragten Benutzersitzungen zu beenden: alter system kill session '15,19095' Ja, Sie können den Kill mehrmals einzeln ausführen. Nachdem die obige Sitzung gelöscht wurde, führen Sie den Befehl zum Löschen des Benutzers erneut aus. Wie im Bild gezeigt, kann er dieses Mal erfolgreich gelöscht werden. Da diese Anweisung das Schlüsselwort cascade delete hinzufügt, werden alle Objekte und Daten unter diesem Benutzer gelöscht.
Damit ist das Löschen von Benutzern und Objekten abgeschlossen. Wenn es sich um einen Datenbank-Brushing-Vorgang handelt, können Sie mit der Neuerstellung der Benutzer beginnen und dann Berechtigungen zuweisen und das Datenbankskript ausführen, um eine neue Runde von Versionstests durchzuführen .
Hinweise
Seien Sie beim Löschen von Benutzerobjekten in der Kaskade vorsichtig, um zu verhindern, dass der falsche Benutzer oder die falschen Informationen gelöscht werden. Sie können die Daten vor dem Betrieb sichern. Empfohlenes Tutorial: „Oracle Video Tutorial“
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Oracle einen Benutzer nicht löschen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!