2014-07-18 118 views
8

Ho bisogno di aiuto per capire cosa concede/privilegi un utente ha bisogno di CREARE un SYNONYM quando punta a un altro (diverso) oggetto schema.crea sinonimo ora-01031 privilegi insufficienti

Quando provo il seguito, ottengo ora-01031 privilegi insufficienti, quindi ovviamente mi manca e non riesco ad applicare altri privilegi necessari. Ho cercato oltre che potevo, ma non ho trovato nulla di specifico per i sinonimi cross-schema.

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 
+0

Hai [concesso 'CREATE SYNONYM' all'utente] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_7001.htm#SQLRF54350) e non l'hai perso? –

risposta

11

La documentazione per the CREATE SYNONYM command include:

Prerequisiti

Per creare un sinonimo privata nel proprio schema, è necessario avere il privilegio di sistema CREATE SYNONYM.

Per creare un sinonimo privato nello schema di un altro utente, è necessario disporre del privilegio di sistema CREATE ANY SYNONYM.

Per creare un sinonimo PUBLIC, è necessario disporre del privilegio di sistema CREATE PUBLIC SYNONYM.

si sta cercando di creare un sinonimo privato nello schema 's READWRITE, quindi si deve avere a che fare:

GRANT CREATE SYNONYM TO READWRITE; 

L'oggetto sinonimo sta puntando è in uno schema diverso, ma non è rilevante qui.