最近、Oracle 10g から 11g に切り替えましたが、メール機能が機能しないことに気付き、エラーが発生しました。
ORA-24247: network access denied by access control list (ACL)
そのため、少しグーグルで調べたところ、Oracle 11g の新機能により、utl_smtp を含む特定のパッケージの使用が制限されていることがわかりました。簡単な解決策を探しているので、Oracle のドキュメントは読みませんでしたが、より簡単な解決策を探していて、次のチュートリアルに出会いました。
https://www.pythian.com/blog/setting-up-network-acls-in-oracle-11g-for-dummies/
少しいじりましたが、よくわからなかったので、2 つの個別の構成 .xml ファイルを追加したと思います。私の質問の最初の部分は - どうすれば削除できますか?
2 番目の質問は次のとおりです。
ユーザーにいくつかの許可を追加した後、それが機能するかどうかをテストしようとしましたが、すぐに機能しないことに気付きました:
SELECT DECODE(
DBMS_NETWORK_ACL_ADMIN.check_privilege('netacl.xml', 'TEST1', 'connect'),
1, 'GRANTED', 0, 'DENIED', NULL) privilege
FROM dual;
戻り値:
PRIVILE
-------
DENIED
なぜですか?(これはソートされています)
質問の 3 番目の部分 - 読んだ後、拒否されました。次のように修正しようとします。
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE('netacl.xml' ,'TEST1', TRUE, 'connect');
END;
しかし、それは私にエラーを与えます:
Ora19279 - XQuery dynamic type mismatch.....(more text meaning nothing to me).
なぜですか?(私は、同じユーザーに同じ権限を2回付与すると、そのエラーが発生することを理解しました)
アップデート
以下のケビンスキーの提案された回答に従い、その過程でかなりのことを学びましたが、まだ問題があります。それでも ORA-24247: アクセス制御リスト (ACL) によってネットワーク アクセスが拒否されました。提案どおりに他のすべてを行ったので、問題は最初に追加した構成ファイルである可能性があると考え始めていますが、その名前を思い出せないため、今は削除できません。誰かが私を助けることができれば、とても感謝しています。
結果(私はいくつかの異なることを試していたので):
select * from dba_network_acls;
戻り値
* | 25 | 25 | /sys/acls/utl_smtp.xml| ACLID...
myservername.com | 25 | 25 | /sys/acls/utl_smtp.xml| ACLID...
myDBName | 25 | 25 | /sys/acls/utl_smtp.xml| ACLID...
mailServerDomainName | 25 | 25 | /sys/acls/utl_smtp.xml| ACLID...
mailserver.myDomain.local | 25 | 25 | /sys/acls/utl_smtp.xml| ACLID...