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')
Comentários
Postar um comentário
Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.