DBAtlas · Atlas de operaciones de bases de datos

Mostrar los privilegios de un usuario

Oracle

SELECT privilege FROM dba_sys_privs WHERE grantee = 'APP'
UNION ALL SELECT granted_role FROM dba_role_privs WHERE grantee = 'APP'
UNION ALL SELECT privilege||' ON '||owner||'.'||table_name
          FROM dba_tab_privs WHERE grantee = 'APP';

El grantee se almacena en mayúsculas. Para privilegios indirectos otorgados mediante roles, recorra también role_role_privs.

PostgreSQL

SELECT grantee, table_schema, table_name, privilege_type
FROM information_schema.role_table_grants
WHERE grantee = 'app';
-- Role memberships (direct): \drg app (PG16+; earlier \du app)

Las pertenencias a roles (herencia) se almacenan en pg_auth_members; \du/\drg solo muestran pertenencias directas, use pg_has_role('app', '<role>', 'MEMBER') para la pertenencia indirecta.

MySQL

SHOW GRANTS FOR 'app'@'%';

Para roles (MySQL 8), primero SET ROLE ALL, o use SHOW GRANTS FOR 'app'@'%' USING 'role_name';

SQL Server

SELECT dp.name AS principal, p.permission_name,
       p.state_desc, o.name AS object
FROM sys.database_permissions p
JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
LEFT JOIN sys.objects o ON p.major_id = o.object_id
WHERE dp.name = 'app';

Para permisos otorgados mediante roles, revise también las pertenencias en sys.database_role_members.

MongoDB

db.getUser("app", { showPrivileges: true, showCredentials: false })

showPrivileges también lista los privilegios expandidos (efectivos) de los roles.

Redis

ACL GETUSER app

Devuelve los comandos permitidos, los patrones de claves (~), los canales pub/sub (&) y los hashes de contraseña.

Abrir en DBAtlas →