Creando Vistas Materializadas en otros esquemas: ORA-01031 (II)

Recientemente me ha llegado a mi ‘mail’ una duda sobre el mismo error (ORA-01031: privilegios insuficientes) al crear una vista materializada en otro esquema.

Tras remitirle aquí, el remitente me decía que persistía el error. Al ver el DDL de la creación de la vista materializada caí en la cuenta de que el problema era otro:era una vista materializada ‘REFRESH ON COMMIT’. Pues bien, para este tipo de vistas se necesita un privilegio específico:

ON COMMIT REFRESH create a refresh-on-commit materialized view on any table in the database

Y lo vemos aquí:

CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
  2    NOCACHE
  3    LOGGING
  4    NOPARALLEL
  5    BUILD IMMEDIATE
  6    REFRESH ON COMMIT
  7    AS
  8    SELECT * FROM OTHERUSER.THE_TABLE;
  SELECT * FROM OTHERUSER.THE_TABLE
                           *
ERROR en línea 8:
ORA-01031: privilegios insuficientes


CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
  2    NOCACHE
  3    LOGGING
  4    NOPARALLEL
  5    BUILD IMMEDIATE
  6  --  REFRESH ON COMMIT
  7    AS
  8    SELECT * FROM OTHERUSER.THE_TABLE;

Vista materializada creada.

CARLOS@XE.localhost> DROP MATERIALIZED VIEW MY_MV;

Vista materializada borrada.

CARLOS@XE.localhost> GRANT ON COMMIT REFRESH TO CARLOS;

Concesión terminada correctamente.

CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
  2    NOCACHE
  3    LOGGING
  4    NOPARALLEL
  5    BUILD IMMEDIATE
  6    REFRESH ON COMMIT
  7    AS
  8    SELECT * FROM OTHERUSER.THE_TABLE;

Vista materializada creada.

CARLOS@XE.localhost>

Saludos.

Carlos.

Anuncios

One Response to Creando Vistas Materializadas en otros esquemas: ORA-01031 (II)

  1. Óscar de la Torre dice:

    Hola Carlos,

    Me alegra ver que escribes de nuevo sobre Oracle 🙂

    Me pregunto cuanto tiempo dedicó la persona con la duda a buscar su solución. Si usas Google:

    http://www.google.es/search?q=create+materialized+view+another+user

    y seleccionas el primer link (que lleva a la documentación oficial de Oracle), no hay más que buscar dentro de la página “another user” y se ve éste y otros privilegios necesarios para las distintas casuísticas que pueden darse.

    Por lo que he visto últimamente en foros, se opta cada vez más por preguntar antes de buscar.

    En cualquier caso, gracias por el apunte.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: