web-dev-qa-db-ja.com

シノニムを作成ora-01031不十分な権限

SYNONYMが別の(異なる)スキーマオブジェクトを指している場合に、ユーザーがSYNONYMを作成するために必要な付与/特権を理解するのに役立ちます。

以下を試してみると、ora-01031の権限が不足しているので、他の必要な権限が欠けていて適用できません。できる限り検索を行いましたが、スキーマ間の類義語に固有の情報は見つかりませんでした。

CREATE USER test IDENTIFIED BY pw DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
ALTER USER test IDENTIFIED BY pw;
GRANT CONNECT, RESOURCE TO test;

-- ... create a bunch of stuff in test...

CREATE USER READWRITE IDENTIFIED BY pw DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE    TEMP;
ALTER USER READWRITE IDENTIFIED BY pw;
GRANT CONNECT, RESOURCE TO READWRITE;

GRANT SELECT ON GDACS.FIXALARMS TO PUBLIC;
GRANT UPDATE, INSERT ON GDACS.FIXALARMS TO READWRITE; 

CONNECT READWRITE/pw;

CREATE SYNONYM FIXALARMS for test.FIXALARMS;
ORA-01031 insufficient privileges
9
user1289330

the CREATE SYNONYMコマンド のドキュメントには、次のものが含まれます。

前提条件

独自のスキーマにプライベートシノニムを作成するには、CREATE SYNONYMシステム権限が必要です。

別のユーザーのスキーマにプライベートシノニムを作成するには、CREATE ANY SYNONYMシステム権限が必要です。

PUBLICシノニムを作成するには、CREATE PUBLIC SYNONYMシステム権限が必要です。

READWRITEの独自のスキーマにプライベートシノニムを作成しようとしているため、次のことを行う必要があります。

GRANT CREATE SYNONYM TO READWRITE;

シノニムが指しているオブジェクトは別のスキーマにありますが、ここでは関係ありません。


新しいアカウントがGDACSスキーマのオブジェクトにのみアクセスする場合、特にアクセスを許可するオブジェクトが多数ある場合は、可能な限りすべての類義語を作成する代わりに 新規ユーザーのcurrent_schema 各セッション-おそらく ログオントリガーを介して

14
Alex Poole