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