Esta consulta permite obtener, para cada usuario de Blackboard, su rol de sistema primario y los roles de sistema secundarios que tenga asignados.
El rol primario se obtiene desde la tabla users, mientras que los roles secundarios se recuperan desde domain_admin. Cuando un usuario dispone de varios roles secundarios, estos se agrupan en una única columna separados por ;.
SELECT
u.user_id,
sr.system_role AS "Primary System Role",
STRING_AGG(da.system_role, ';') AS "Secondary System Roles"
FROM system_roles sr
INNER JOIN users u
ON u.system_role = sr.system_role
INNER JOIN domain_admin da
ON u.pk1 = da.user_pk1
-- WHERE
-- sr.system_role = 'ROLCODE'
-- OR da.system_role = 'ROLCODE'
GROUP BY
u.user_id,
sr.system_role
ORDER BY
u.user_id;
La consulta devuelve tres campos:
user_id: identificador del usuario en Blackboard.Primary System Role: rol de sistema principal asignado al usuario.Secondary System Roles: listado de roles secundarios asociados al usuario.
El bloque WHERE se deja comentado para poder reutilizar la consulta de forma genérica. Si se necesita localizar únicamente usuarios que tengan un rol concreto, ya sea como primario o como secundario, puede habilitarse y sustituir ROLCODE por el código del rol correspondiente.
Nota: al utilizar INNER JOIN con domain_admin, la consulta solo devuelve usuarios que tengan al menos un rol secundario registrado en esa tabla. Se puede sustituir este INNER JOIN por un LEFT JOIN si se quieren obtener todos los usuarios.
Las queries os las ofrecemos sin garantías de ningún tipo. Funcionaban cuando creamos el artículo, pero debido a los cambios que se pueden producir en un software que evoluciona constantemente, no podemos asegurar que sigan funcionando cuando nos leas.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.