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
the CREATE SYNONYM
コマンド のドキュメントには、次のものが含まれます。
前提条件
独自のスキーマにプライベートシノニムを作成するには、
CREATE SYNONYM
システム権限が必要です。別のユーザーのスキーマにプライベートシノニムを作成するには、
CREATE ANY SYNONYM
システム権限が必要です。
PUBLIC
シノニムを作成するには、CREATE PUBLIC SYNONYM
システム権限が必要です。
READWRITE
の独自のスキーマにプライベートシノニムを作成しようとしているため、次のことを行う必要があります。
GRANT CREATE SYNONYM TO READWRITE;
シノニムが指しているオブジェクトは別のスキーマにありますが、ここでは関係ありません。
新しいアカウントがGDACSスキーマのオブジェクトにのみアクセスする場合、特にアクセスを許可するオブジェクトが多数ある場合は、可能な限りすべての類義語を作成する代わりに 新規ユーザーのcurrent_schema
各セッション-おそらく ログオントリガーを介して 。