説明
このステートメントは、セッションを終了するために使用します。このステートメントを実行するには、ユーザーが ALTER SYSTEM 権限を持っている必要があります。
構文
ALTER SYSTEM KILL SESSION 'session_id' [IMMEDIATE]
パラメータの説明
パラメータ |
説明 |
|---|---|
| session_id | 終了させるセッションIDを指定します。SHOW PROCESSLIST または SHOW FULL PROCESSLIST を実行して Id 列を確認するか、GV$SESSION ビューをクエリして取得できます。 |
| IMMEDIATE | オプションのパラメータで、セッションを即座に終了するかどうかを指定します。指定されている場合、セッションは即座に終了しようと試みます。指定されていない場合は、現在のトランザクションが完了するまで待機します。 |
例
以下の例では、ユーザー kill_user を作成して権限を付与し、そのユーザーでデータベースにログインして接続されているセッションのIDを照会した後、そのセッションを終了します。
obclient [SYS]> CREATE USER kill_user IDENTIFIED BY killuser123;
obclient [SYS]> GRANT CREATE SESSION TO kill_user;
obclient [SYS]> GRANT ALTER SYSTEM TO kill_user;
obclient [KILL_USER]> SHOW PROCESSLIST;
+------------+-----------+----------------------+-----------+---------+------+--------+------------------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+------------+-----------+----------------------+-----------+---------+------+--------+------------------+
| 3221487726 | KILL_USER | 100.xx.xxx.xxx:34803 | KILL_USER | Query | 0 | ACTIVE | SHOW PROCESSLIST |
| 3221487722 | SYS | 100.xx.xxx.xxx:40025 | SYS | Sleep | 93 | SLEEP | NULL |
+------------+-----------+----------------------+-----------+---------+------+--------+------------------+
1 row in set
obclient [KILL_USER]> ALTER SYSTEM KILL SESSION '3221487726';
注意事項
- セッションの終了により、コミットされていないトランザクションがロールバックされる可能性があります。
- システムセッションの終了はデータベースの安定性に影響を与える可能性があるため、慎重に操作してください。
- このコマンドを実行するには、ALTER SYSTEM権限が必要です。
関連ドキュメント
現在のデータベース内のセッション数とセッションIDに関する詳細情報については、テナントセッションの確認を参照してください。