¿Quiénes son los usuarios de nuestra Base de Datos? ¿Qué derechos (privilegios, permisos) tienen en ella?

Para responder la primera pregunta podemos ver este artículo:

Usuarios de nuestra Base de Datos

Para responder a la segunda pregunta podemos escribir esta consulta:

SELECT
   RDB$USER AS USUARIO,
   DECODE(RDB$PRIVILEGE, 'S', 'Select', 'I', 'Insert', 'U', 'Update', 'D', 'Delete', 'R', 'Foreign Key', 'X', 'Execute Procedure', 'M', 'Rol', 'OTRO') AS DERECHO_QUE_POSEE,
   RDB$RELATION_NAME AS NOMBRE_RELACION
FROM
   RDB$USER_PRIVILEGES
GROUP BY
   1, 2, 3
ORDER BY
   1

y obtendremos algo similar a esto:

CONEXION2

Captura 1. Si haces clic en la imagen la verás más grande

donde podremos ver, para cada usuario y cada rol, todos los derechos (privilegios, permisos) que posee en cada relación (tabla, vista, stored procedure, rol).

De esta manera nos resultará muy fácil verificar si a un usuario (o rol) hay que otorgarle más derechos, menos derechos, o si los que actualmente tiene son los correctos.

Si lo que necesitamos es ver solamente los derechos de un usuario entonces podríamos escribir.

SELECT
   RDB$USER AS USUARIO,
   DECODE(RDB$PRIVILEGE, 'S', 'Select', 'I', 'Insert', 'U', 'Update', 'D', 'Delete', 'R', 'Foreign Key', 'X', 'Execute Procedure', 'M', 'Rol', 'OTRO') AS DERECHO_QUE_POSEE,
   RDB$RELATION_NAME AS NOMBRE_RELACION
FROM
   RDB$USER_PRIVILEGES
WHERE
   RDB$USER = 'SILVIA'
GROUP BY
   1, 2, 3
ORDER BY
   1

Y obtendríamos algo como esto:

CONEXION3

Captura 2. Si haces clic en la imagen la verás más grande

 Artículos relacionados:

Usuarios de nuestra Base de Datos

El índice del blog Firebird21