2021年2月17日水曜日

管理サービスと開発者ログインの禁止

 Autonomous DatabaseはRestrictions and Limitations for Oracle Application Express with Autonomous Databaseに記載のあるように

  • Oracle Application Express is only available as a Full Development environment. Converting into a Runtime environment is not supported.

ということで、実行環境のみの構成はできず、必ず管理サービスと、ワークスーペースにサインインしてアプリケーションの開発を行う機能が含まれます。もちろん便利なのですが、アカウントの有無にかかわらず、誰でもサインイン画面を開くことができる、というのは、やはり心配です。

たまたま、APEX_INSTANCE_ADMINパッケージのSET_PARAMETERプロシージャにて使用可能なパラメータの一覧を見ていたら、

  • DISABLE_ADMIN_LOGIN
  • DISABLE_WORKSPACE_LOGIN

というパラメータが目に止まりました。それぞれ、

  • Yに設定すると、管理サービスは無効化されます。デフォルトのNに設定すると、無効化されません。
  • Yに設定すると、ワークスペース・ログインは無効化されます。デフォルトのNに設定すると、ログインは無効化されません。

とのことです。Autonomous Databaseでも管理サービスと開発者ログインを禁止できそうです。

確認してみました。

SQL Developer WebにADMINでサインインし、管理サービスを禁止しました。

begin
    apex_instance_admin.set_parameter('DISABLE_ADMIN_LOGIN','Y');
    commit;
end;

管理サービスにアクセスすると、不当なアクセスです。と表示されるようになりました。サインインの画面さえ表示されません。

同様に開発者ログインを禁止しました。
begin
    apex_instance_admin.set_parameter('DISABLE_WORKSPACE_LOGIN','Y');
    commit;
end;
ワークスペースにアクセスすると、不当なアクセスです。と表示されるようになりました。サインインの画面さえ表示されません。

セキュリティ上の懸念がある場合は両方とも禁止すべきか、少なくても、開発をしていないときは一時的にでも禁止しておくべきなので、積極的に使用したい機能です。