Pesquisar no Programero

segunda-feira, 29 de julho de 2013

Verificar privilégios de um usuário (Oracle)

Em muitas ocasiões, por diferentes motivos nos deparamos com a necessidade de conhecer os privilégios que um determinado usuário possui.
Como vimos aqui existem alguns tipos diferentes de privilégios e para consultar esses privilégios temos a disposição o famoso dicionário de dados, conforme visto aqui, sendo nos objetos desse dicionário que precisaremos consultar para obter informações sobre os privilégios.
O objetivo desse post não é entrar em detalhes sobre os privilégios ou mesmo sobre as tabelas que formam o dicionário de dados, isso já foi feito nas postagens mencionadas, a intenção é mostrar uma consulta que nos permita obter os principais privilégios, segue o código:
select 'Privilégios de sistema : ' || PRIVILEGE
  from dba_sys_privs
 where GRANTEE = upper('PROGRAMERO')
union
select 'Privilégios em Role: ' || GRANTED_ROLE
  from dba_role_privs
 where GRANTEE = upper('PROGRAMERO')
union
select 'Privilégios em objetos : ' || owner || '.' || TABLE_NAME || ' – ' || privilege
  from dba_tab_privs
 where GRANTEE = upper('PROGRAMERO')
union
select 'Privilégios em colunas : ' || owner || '.' || TABLE_NAME || '.' || column_name || ' – ' ||
       privilege
  from dba_col_privs
 where GRANTEE = upper('PROGRAMERO')

Nenhum comentário:

Postar um comentário

Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.