セットアップ: Oracle 11g で実行する 2 つのスクリプト ツリーがあります。1 つのセットは正しいインスタンス構成を保証し、すべての DBA プロキシ アカウントが dbadmin アカウントに接続するようにします。もう 1 つのセットはデータベース環境を構築および変更します。
問題: DBADMIN アカウントにプロキシすると、2 番目のスクリプト セットが正常に実行されます。データのロードを許可するプロシージャは、適切なスキーマの下で問題なく作成され、データをロードするスクリプトは、SYS AS SYSDBA として実行された場合に問題なく実行されますが、プロシージャを作成した直後に DBADMIN として実行しようとすると、I が呼び出されます。PLS-00904: insufficient privilege to access object schema.package
呼び出しごとに取得します。GRANT EXECUTE ON schema.package TO DBADMIN
(もちろん)予想されるORA-01749: you may not GRANT/REVOKE privileges to/from yourself
エラーが生成されるため、スクリプトを作成することさえできません。
もっと簡単に言えば:
(DBADMINとして:)
...
CREATE OR REPLACE PACKAGE BODY other_schema.package_name IS
...
PROCEDURE add_data(...)
...
(成功し、テスト可能に動作しています)(後で、同じ親スクリプトによって呼び出された別のスクリプトで、まだDBADMINとして:)
BEGIN
other_schema.package_name.add_data(...);
...
(上記の PLS-00904 を発生させます - 権限が不十分です)
DBADMINアカウントにまだ作成していないパッケージへのEXECUTEアクセスを与える方法、またはDBADMINがスクリプトストリーム全体を停止せずに自分自身にアクセスし、ログアウトしてSYS AS SYSDBAとして再度ログインしてGRANTする方法についてのアイデアはありますか? (ここでの要点は、最初の「このスクリプト ツリーを実行する」以外の手動ステップをゼロにし、SYS AS SYSDBA を使用する前に 1 回だけにすることです。)