3

あなたも私を助けてくれることを願っています。

APEX アプリケーションを開発しています。

Oracle 12c APEX 4.2.  

pdborcl でワークスペース wrk_projects を使用しています。

クライアントに関する情報が必要です。クライアントは同じドメインで動作します。
だから私はレポートを作成しています:

select utl_inaddr.get_host_name(sys_context('userenv','ip_address')) as hostname from dual;

私がそれを実行すると:

レポート エラー:
ORA-24247 ネットワーク アクセスがアクセス制御リスト (ACL) によって拒否されました

私の質問は次のとおりです。コンテナーまたは pdb で ACL を定義する必要がありますか?
ACL を付与する必要があるユーザーを見つけるにはどうすればよいですか? 他のヒントはありますか?

4

1 に答える 1

4

Oracle Apex ドキュメント: Oracle Database 12c での接続権限の付与

これは、「Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド -> アプリケーション・セキュリティの管理」にあります。

DBMS_NETWORK_ACL_ADMIN のプロシージャ CREATE_ACL、ASSIGN_ACL、ADD_PRIVILEGE および CHECK_PRIVILEGE は、Oracle Database 12c では非推奨です。かわりにAPPEND_HOST_ACEを使用することをお薦めします。次の例は、 APEX_050000 データベース・ユーザーに任意のホストへの接続権限を付与する方法を示しています。この例では、Oracle Application ExpressがインストールされているデータベースにSYSDBAロールを指定してSYSとして接続していると想定しています。

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace => xs$ace_type(privilege_list => xs$name_list('connect'),
                           principal_name => 'apex_050000',
                           principal_type => xs_acl.ptype_db));
END;
/

次の例は、ローカル ネットワーク リソースへの特権の少ないアクセスを提供する方法を示しています。この例では、電子メール サーバーやレポート サーバーなど、ローカル ホスト上のサーバーのみへのアクセスを有効にします。

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => 'localhost',
        ace => xs$ace_type(privilege_list => xs$name_list('connect'),
                           principal_name => 'apex_050000',
                           principal_type => xs_acl.ptype_db));
END;
/

それ以外は、データベースで頂点をどのように構成したかによって異なります。cdb で apex を使用しており、apex オブジェクトがリンクされていますか (したがって、すべての db に対して 1 つの apex インストール)、または pdb ごとに異なる apex インストールを使用していますか。私はそれが単一のインストールであると推測しています。私の推測では (私は DBA ではありません)、ルートのユーザーに権限を付与する必要があります。

于 2015-08-24T09:52:32.820 に答える