ニュース&ブログ
RDS for Oracle セッションKILLしてみた
この記事は最終更新から10年以上経過しています。内容が古くなっている可能性があります。
投稿日:2014/12/15

みなさん、お久しぶりです。今回ブログを担当させていただきます坂野です。
先日RDS for Oracleをいろいろ触っていてあることに気付きました。
それは・・・。セッションがKILLできない!?
調べるとAWS documentationに記載されているのですね!?
検証も併せてやったので、それらをまとめてみました。
1.マスターユーザーの権限を確認
そもそもRDSのマスターユーザーは、どのような権限が付与されているのか確認してみましょう。①まずは、マスターユーザーに付与されているROLEを調べてみます
SQL> select * from dba_role_privs where grantee = 'ORACLE';
GRANTEE GRANTED_ROLE ADMIN_ DEFAUL
-------------------- ------------------------------ ------ ------
ORACLE AQ_ADMINISTRATOR_ROLE YES YES
ORACLE SELECT_CATALOG_ROLE YES YES
ORACLE RESOURCE YES YES
ORACLE AQ_USER_ROLE YES YES
ORACLE EXECUTE_CATALOG_ROLE YES YES
ORACLE RECOVERY_CATALOG_OWNER YES YES
ORACLE CTXAPP YES YES
ORACLE DBA YES YES
ORACLE CONNECT YES YES
SQL> select * from dba_sys_privs where grantee = 'ORACLE';
GRANTEE PRIVILEGE ADMIN_
-------------------- ------------------------------ ------
ORACLE GRANT ANY OBJECT PRIVILEGE YES
ORACLE RESTRICTED SESSION YES
ORACLE DROP ANY DIRECTORY YES
ORACLE UNLIMITED TABLESPACE YES
通常インストールしたOracleのsysスキーマに付与された権限とRDSのマスターユーザーに付与された権限を比較してみます。
SQL> select * from session_privs ・・・ 通常インストールのOracle
2 minus
3 select * from session_privs@<DBリンク名>; ・・・ RDS
PRIVILEGE
------------------------------------------------
ALTER DATABASE
ALTER DATABASE LINK
ALTER PUBLIC DATABASE LINK
ALTER SYSTEM
CREATE ANY DIRECTORY
CREATE EXTERNAL JOB
EXEMPT ACCESS POLICY
EXEMPT IDENTITY POLICY
GRANT ANY PRIVILEGE
GRANT ANY ROLE
SYSDBA
SYSOPER
2.セッションKILL
①現在ログイン中のセッションのSIDとシリアル番号を調べますSQL> select sid , serial# , username from v$session where username = 'ORACLE';
SID SERIAL# USERNAME
---------- ---------- ----------------------------------------------------
1 53 ORACLE
RDSでのセッションをKILLするためのコマンドをAWS documentationで確認します。
図1:セッションKILLコマンド
SQL> exec rdsadmin.rdsadmin_util.kill(1,53);
PL/SQLプロシージャが正常に完了しました。
SQL> select sid , serial# , username from v$session where username = 'ORACLE';
select sid , serial# , username from v$session where username = 'ORACLE'
*
行1でエラーが発生しました。:
ORA-00028: セッションは強制終了されました。
このようにRDS for Oracle では通常インストールした時とオペレーションが違うことが多々あります。 利用者にとっては設定や運用の手間がいらなく使い勝手が良いのですが、DBAとして従事していた者としては若干戸惑うこともあります。今後も簡単ではありますが、検証と備忘録としてこの辺りをブログにしていこうと思います。

坂野靖幸
AWSソリューションアーキテクト。社内では主にデータベースを担当。DBAの経験を経て現在はAWS+Oracle」「redshift」を主に担当。最近、AKB48の影響か苗字を「いたの」と読み間違われます。土へんです。