oracleRDS for Oracle

RDS for Oracle Tips

先日初めてRDS for Oracle触りました。本当は私のお仕事ではなかったのですが、お隣の部署の方から「AWSでOracle動かしているんだけど、killできないんだけど、、見てよ」、、と
所詮Oracleでしょ?と思っていたら、面食らいました。

セッションをKILLするには専用のプロシージャが用意されています

通常はしかるべき権限をもったユーザから、alter system kill sessionとすればよいのですが、RDS for Oracleでは専用のプロシージャが用意されています。

exec rdsadmin.rdsadmin_util.kill(13,12712)
;

参考までにですが、 ALTER SYSTEMの権限付与をGRANT文で行う事ができません。
GRANT ALTER SYSTEM TO SOONI とすると 『ORA-04088: トリガー’RDSADMIN.RDS_GRANT_TRIGGER’の実行中にエラーが発生 』となりました。

Error
[row:13,col:1] ORA-04088: トリガー'RDSADMIN.RDS_GRANT_TRIGGER'の実行中にエラーが発生しました
ORA-00604: 再帰SQLレベル1でエラーが発生しました。
ORA-20997: "ALTER SYSTEM" grants not allowed
ORA-06512: "RDSADMIN.RDSADMIN_TRIGGER_UTIL", 行177
ORA-06512: 行2

SYSオブジェクトへのSELECTやEXECUTE権限の付与も専用のプロシージャが用意されています

通常はgrant select on GV_$SQL to SCOTT としますが、RDS for Oracleでは専用のプロシージャが用意されています。

begin
rdsadmin.rdsadmin_util.grant_sys_object(
 p_obj_name  => 'GV_$SQL'
,p_grantee   => 'SCOTT'
,p_privilege => 'SELECT'
);
end;

スポンサーリンク