Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso encontrar o PROPRIETÁRIO de um objeto no Oracle?


Você pode consultar a visualização ALL_OBJECTS:
select owner
     , object_name
     , object_type
  from ALL_OBJECTS
 where object_name = 'FOO'

Para encontrar sinônimos:
select *
  from ALL_SYNONYMS
 where synonym_name = 'FOO'

Apenas para esclarecer, se um usuário A instrução SQL do usuário faz referência a um nome de objeto sem qualificação de esquema (por exemplo, 'FOO'), o Oracle FIRST verifica o esquema do usuário para um objeto com esse nome (incluindo sinônimos no esquema desse usuário). Se o Oracle não puder resolver a referência do esquema do usuário, o Oracle verificará um sinônimo público.

Se você estiver procurando especificamente por restrições em um table_name específico:
select c.*
  from all_constraints c 
 where c.table_name = 'FOO'
 union all
select cs.*
  from all_constraints cs
  join all_synonyms s 
    on (s.table_name = cs.table_name
     and s.table_owner = cs.owner 
     and s.synonym_name = 'FOO'
       )

HTH

-- termo aditivo:

Se seu usuário tiver acesso às visualizações DBA_ (por exemplo, se seu usuário tiver recebido SELECT_CATALOG_ROLE), você poderá substituir 'DBA_ ' no lugar de 'ALL_ ' nos exemplos SQL anteriores. O ALL_x exibições mostram apenas objetos aos quais você recebeu privilégios. O DBA_x views mostrará todos os objetos do banco de dados, quer você tenha privilégios sobre eles ou não.