✂️
【Oracle/SQLServer】RDSのセッションの強制終了の仕方
1.はじめに
今回はAmazon RDS for Oracle/SQLServerでセッションを強制終了する方法について紹介します。
DBマネジメントツールでの操作でセッションを切断する際、以下エラーが出てしまうケースがあります。
今回はそうした場合でもセッションを切断できるSQL文を紹介します。
【Oracle SQL DeveloperのGUI操作でセッションを切断しようとした際のエラー】
ORA-01031: 権限が不足しています
ORA-06512: 行8
ORA-06512: 行8
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a database operation without
the necessary privileges.
*Action: Ask your database administrator or designated security
administrator to grant you the necessary privileges
2.SQLを利用した切断方法
以下SQLを実行することでセッションを強制的に切断できます。
■ Oracle
DECLARE
CURSOR c_sessions IS
SELECT sid, serial#
FROM v$session
WHERE username LIKE '任意のユーザ名';
BEGIN
FOR sess IN c_sessions LOOP
rdsadmin.rdsadmin_util.kill(sess.sid, sess.serial#);
END LOOP;
END;
■ SQLServer
DECLARE @KillCmd NVARCHAR(MAX) = N'';
SELECT @KillCmd = @KillCmd + 'KILL ' + CAST(session_id AS NVARCHAR(10)) + '; '
FROM sys.dm_exec_sessions
WHERE login_name LIKE '任意のユーザ名';
EXEC sp_executesql @KillCmd;
付録
DBマネジメントツールでの切断方法
DBマネジメントツールでの切断方法も紹介します。
■ Oracle SQL Developer
Oracle SQL Developerを起動します。
「ツール」→「セッションのモニター」を選択します。
対象のセッションを右クリックで選択し、「セッションの中断」をクリックします。
■ SQL Server Management Studio
SQL Server Management Studioを起動します。
以下画像内の赤線部分をクリックします。
対象のセッションを右クリックし、「Kill Process」をクリックします。
Discussion