方法: 1. 「select sid,serial# from v$session where username=''」ステートメントを使用してセッション情報をクエリします。 2. 「alter system kill session ''」ステートメントを使用して、セッション; 3. ユーザーの削除を再開します。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
テスト環境の Oracle データベースは、ソフトウェア開発バージョンのアップグレードに応じて更新する必要があります。これは、テスト環境が使用された後であるためです。機能テストの便宜上、テスト環境のデータベース内のデータに一貫性がなくなる場合があり、その後のテストに一定の影響や干渉を与える可能性があります。バージョン。上記の状況を回避するために、通常、現在のデータベース ユーザーの下にあるすべてのオブジェクトが最初にクリアされてから再作成されます。ただし、ユーザーの下にあるすべてのオブジェクトとデータを削除するには、まず現在のユーザーの下にあるオブジェクトを調べてから、それらを削除する必要があります。ユーザーを削除するカスケード削除方法の使用は非常に簡単で便利ですが、ユーザーが現在削除対象が接続されている場合、削除できません。最初にセッションを強制終了してから削除する必要があります。
まず、xshell ツールを使用して oracle データベース サーバーに接続する必要があります (ここでは Linux 環境で説明しますが、Windows 環境の方が簡単です)。現在の Linux ユーザーが oracle ユーザーでない場合は、 oracle ユーザーに切り替える必要があります。コマンド su - oracle を入力して切り替えます。
oracle ユーザーで sqlplus / as sysdba として実行します。つまり、管理者 sys としてデータベースを削除します。ユーザーを削除するには通常、管理者アカウントのみが必要です。データベース テーブルとデータのクエリのみが必要な場合は、通常のアカウントでログインするだけで済みます。接続後、「Connected to: oracle Databases」およびその他のプロンプトが表示され、表示される入力プロンプトは「SQL>
」となり、ユーザーを削除するステートメントを入力します。 DROP USER cqt CASCADE; CASCADE は、ユーザー配下のすべてのオブジェクト情報をカスケード削除することを意味します。図に示すように、ORA-01940 エラー、現在接続しているユーザーは削除できません。
削除を続行する場合は、まず現在接続しているユーザーをクエリする必要があります。セッション情報を確認してから強制終了し、削除操作を実行します。クエリ ステートメントは次のとおりです: select sid,serial# from v$session where username='CQT'; 大文字と小文字の違いに注意してください。図に示すように、ユーザーに接続されている複数のセッション情報が照会されます。上記で照会されたすべてのユーザー セッションを強制終了する必要があります。
セッションを強制終了するステートメントは次のとおりです。 : alter system kill session '15,19095'; 複数のセッションの場合、複数回強制終了できます。
上記のセッションがクリアされたら、コマンドを実行してセッションを削除します。写真のように、今度は正常に削除できました。このステートメントは cascade delete キーワードを追加するため、このユーザーの下にあるすべてのオブジェクトとデータが削除されます。
上記でユーザーとオブジェクトの削除が完了しました。データベース ブラシ操作の場合は、ユーザーの再作成を開始し、権限を割り当ててデータベースを実行できます。新しいバージョンのテストが進行中です。
注意事項
ユーザー オブジェクトをカスケードで削除する場合は、間違ったユーザーや情報を削除しないように注意してください。操作する前にデータをバックアップできます。
推奨チュートリアル: 「Oracle ビデオ チュートリアル 」
以上がOracle がユーザーを削除できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。