jueves, diciembre 15, 2011

Oracle, consulta de privilegios de un usuario

Script SQL muy útil que nos pregunta por un usuario de la base de datos y nos proporciona la lista de privilegios de ese usuario.

Muy útil antes de eliminar el usuario (drop user cascade) para una importación.

Código descargado de: http://www.adp-gmbh.ch/ora/misc/recursively_list_privilege.html
Ahí hay otros dos scripts para consultas generales de privilegios en la base de datos.

Ejecutado correctamente en Oracle 10.2.0.4


select
    lpad(' ', 2*level)  granted_role "User, his roles and privileges"
  from
    (
    /* THE USERS */
      select
        null     grantee,
        username granted_role
      from
        dba_users
      where
        username like upper('%&enter_username%')
    /* THE ROLES TO ROLES RELATIONS */
    union
      select
        grantee,
        granted_role
      from
        dba_role_privs
    /* THE ROLES TO PRIVILEGE RELATIONS */
    union
      select
        grantee,
        privilege
      from
        dba_sys_privs
    )
  start with grantee is null
  connect by grantee = prior granted_role;


Al ejecutarse el script nos pide que introduzcamos un usuario:


Enter value for enter_username: E623E
old  12:       username like upper('%&enter_username%')
new  12:       username like upper('%E623E%')


Y esta es la lista que obtenemos:


User, his roles and privileges
------------------------------
  E623E
    ALTER SESSION
    CONNECT
      CREATE SESSION
    CREATE SEQUENCE
    CREATE SYNONYM
    CREATE VIEW
    RESOURCE
      CREATE CLUSTER
      CREATE INDEXTYPE
      CREATE OPERATOR
      CREATE PROCEDURE
      CREATE SEQUENCE
      CREATE TABLE
      CREATE TRIGGER
      CREATE TYPE
    UNLIMITED TABLESPACE

17 rows selected.

Adjunto imagen del código fuente original, ya que en blogger han eliminado algunos caracteres importantes (como la doble barra):



Saludos.

2 comentarios:

Angel Larreal dijo...

Excelente ! pero olvidaste los || en el Select ...
Muchas gracias ;)

Aitor Iriarte dijo...

En su día estaban. Blogger los quita :-(

Añado una imagen del sitio original, no vaya a ser que en futuro lo quiten.

Saludos,