[oracle_br] Re: Imp error: GRANT MERGE to ;

2014-11-04 Por tôpico luizfernandoro...@hotmail.com [oracle_br]
Boas Senhores.

Chiappa, muito obrigado pelos esclarecimentos.

Sim, vc está correto. O job que está tomando esse erro utiliza exp/imp 
tradicionais. Esse job está executando um purge em diversas tabelas e, por fim, 
reorganiza os dados e elimina espaços alocados e não mais utilizados, então, 
todo o processo acontece na mesma base de dados, tanto o export quanto o 
import. Nesse caso, as permissões não são o problema.

Temos o Extended Support da Oracle para a versão 10gR2... acho que o melhor 
será abrir um SR com os universitários e ver o que eles dizem sobre o erro.

De qualquer forma, muitíssimo obrigado pela ajuda.

Obrigado pessoal.

Att,
Luiz Rocha

[oracle_br] Re: Imp error: GRANT MERGE to ;

2014-11-03 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Opa, então : vc não diz claramente mas como diz que está usando fromuser/touser 
eu ** IMAGINO ** que está usando o exp/imp tradicionais, e não o datapump 
(expdp/impdp) , e pra mim isso aí é algum bugzinho do exp/imp que está dando a 
msg incorreta, dado que GRANT MERGE ** rigorosamente não existe **, pode 
consultar na Documentação10g ... E como o 10g tá fora de Suporte, não tem como 
se obter bugfix...
 Assim, para tentar encontrar a causa real encoberta, eu sugiro : compare os 
parâmetros do banco-origem contra os do banco destino (EM ESPECIAL os 
relacionados com MERGE), confira que REALMENTE o usuário da importação 
REALMENTE tem os mesmos privilégios que o usuário-origem (vc pode usar o script 
que forneço abaixo lá no banco-origem, conectado como usuário privilegiado), ** 
E ** confira que objetos necessários para a criação das tabelas que compõem a 
view, e para a view mesmo, estão presentes e permissionados - digamos, 
SEQUENCEs usadas na(s) tabela(s) que alimentam a view, object types/SQL types, 
, triggers, etc, etc
  Uma outra BOA opção de debug poderia ser vc extrair no banco de origem o DDL 
de origem do objeto que está dando problema (via DBMS_METADATA, provavelmente) 
e executar o DDL manualmente no banco-destino, aí vc vê os erros mais 
facilmente...
  
  Script para consulta de privs : 
  
SQLget privs_by_user.sql
-- script de check de privs
set echo off
set verify off
set pages 200
col granted_role form a20
col owner form a15
col table_name form a33
col privilege form a33
ACCEPT username  prompt 'Enter Username : '
PROMPT Roles granted to user
SELECT granted_role,admin_option,default_role
FROM dba_role_privs
WHERE grantee=UPPER('username')
ORDER BY 1;
PROMPT Table Privileges granted to a user through roles
SELECT granted_role, owner, table_name, privilege
FROM ( SELECT granted_role
FROM dba_role_privs WHERE grantee=UPPER('username')
   UNION
   SELECT granted_role
FROM role_role_privs
WHERE role in (SELECT granted_role
 FROM dba_role_privs WHERE grantee=UPPER('username')
)
   ) roles, dba_tab_privs
WHERE granted_role=grantee
ORder by 1,2,3,4;
PROMPT System Privileges assigned to a user through roles
SELECT granted_role, privilege
FROM ( SELECT granted_role
FROM dba_role_privs WHERE grantee=UPPER('username')
   UNION
   SELECT granted_role
FROM role_role_privs
WHERE role in (SELECT granted_role
 FROM dba_role_privs WHERE grantee=UPPER('username')
)
   ) roles, dba_sys_privs
WHERE granted_role=grantee
 ORDER BY 1,2;
PROMPT Table privileges assigned directly to a user
SELECT owner, table_name, privilege
FROM dba_tab_privs
WHERE grantee=UPPER('username')
ORDER BY 1,2,3;
PROMPT System privileges assigned directly to a user
SELECT privilege, admin_option
FROM  dba_sys_privs
WHERE grantee=UPPER('username') order by 1,2;
 
[]s

  Chiappa