viernes, 31 de octubre de 2014

ORA-02205

Hallé unas notas de un curso que tomé en 1990. Decían que solamente era posible hacer un GRANT SELECT o un GRANT ALTER con una secuencia. Esto me parecío razonable pero quería verificar si fuese todavía el caso. Hice esta prueba en Oracle 12.1. Para empezar, creé un usuario que sería el dueño de una secuencia:

SQL> create user u1 identified by pw1
  2  /
 
Usuario creado.
 
SQL> grant create session, create sequence to u1
  2  /
 
Concesión terminada correctamente.

SQL>

Entonces creé un usuario para recibir los derechos en la secuencia: 

SQL> create user u2 identified by pw2
  2  /
 
Usuario creado.

SQL>

El primer usuario creó una secuencia y luego hizo un GRANT ALL al segundo usuario: 

SQL> conn u1/pw1
Conectado.
SQL> create sequence s1
  2  /

Secuencia creada.

SQL> grant all on s1 to u2
  2  /

Concesión terminada correctamente.

SQL>

Luego busqué los derechos que habían sido dado al segundo usuario. Solamente hallé un ALTER y un SELECT. Esto confirmó lo que había leído en mis notas:

SQL> select privilege from all_tab_privs
  2  where grantor = 'U1'
  3  and grantee = 'U2'
  4  and table_name = 'S1'
  5  /

PRIVILEGE                                             
----------------------------------------              
ALTER                                                 
SELECT

SQL> 

Por fin intenté a hacer un GRANT UPDATE en la secuencia pero recibí un error ORA-02205:

SQL> grant update on s1 to u2
  2  /
grant update on s1 to u2
                *
ERROR en línea 1:
ORA-02205: sólo los privilegios SELECT y ALTER son
válidos para secuencias
 
SQL>

En inglés

No hay comentarios:

Publicar un comentario