sexta-feira, 28 de março de 2014

Criando Materialized View!!! ERRO ORA-01031

Meu objetivo neste post é descrever uma situação que aconteceu comigo e que consumiu algumas horas de dor de cabeça. Achei muito interessante e resolvi compartilhar aqui no blog.

Aparentemente a situação era bem simples:

No meu banco estava logado com meu usuário TAIRONE que possui perfil de DBA. Precisava criar uma materialized view em um outro esquema.

A MV era bem simples:

create materialized view TESTE.MV_DATA_ATUAL
   refresh complete on demand
   disable query rewrite as
select sysdate from dual;

Porém quando executei o comando deu o seguinte erro:


ERROR at line 1:
ORA-01031: insufficient privileges


Estranho né ... Como meu usuário que tem permissão de DBA não tem permissão de criar um materialized view...


Comecei a pesquisar sobre grants de MV e todos os grants que encontrava eu dava ao meu usuário, mas o erro continuava...

GRANT CREATE MATERIALIZED VIEW TO TAIRONE;
....
...
.

Foi aí que descobri o site abaixo:

http://www.krenger.ch/blog/create-materialized-view-ora-01031/


Ele informava um detalhe...

Na prática uma MV é uma tabela, cujo os dados são atualizados a partir de uma view de acordo com a configuração que for determinada na criação dela.

Eu estava tentando criar uma MV para um outro owner que não era o que eu estava logado. Esse owner não tinha permissão de criar tabelas. Foi aí que executei o seguinte comando:

GRANT CREATE TABLE TO TESTE;

E não é que funcionou!!!!!!

Quando tiver um tempinho vou estudar melhor a situação para entender o que aconteceu, mas fica aí a dica para a galera...

Grande abraços!!!




Nenhum comentário:

Postar um comentário