SQL Server Snippets – Consultar roles y usuarios de una base de datos

El siguiente snippet sirve para obtener el listado de roles de una base de datos, con los usuarios que pertenecen a dicho rol:

SELECT
  p.name rol,
  p.principal_id id_rol,
  m.name usuario,
  m.principal_id id_usuario
FROM sys.database_role_members rm
  INNER JOIN sys.database_principals p
    ON rm.role_principal_id = p.principal_id
  INNER JOIN sys.database_principals m
    ON rm.member_principal_id = m.principal_id
ORDER BY p.name

La consulta devuelve un listado de roles y usuarios de la base de datos donde se ejecuta. Cabe mencionar que el listado contiene solamente los roles que están asignados a al menos un usuario (debido a los INNER JOIN), y que devuelve una fila por cada usuario y rol distinto. En este sentido, los usuarios que poseen más de un rol aparecerán repetidos en el listado. En otras palabras, si un usuario pertenece a N roles, entonces aparecerá repetido N veces en el listado, una vez por cada rol al que pertenece.

La consulta funciona (hasta donde yo he probado) en SQL Server 2005, 2008 y 2012.

Feliz día 🙂

SQL Server Snippets – Pausa

En esta ocasión les dejó un snippet corto, pero muy interesante, que consiste en hacer cómo hacer una pausa en SQL Server. Esto vendría siendo similar a un sleep en otros lenguajes de programación.

El comando es sencillo:

waitfor delay '00:01:00'

En dicho ejemplo se muestra el comando para hacer una pausa por un minuto. Sigue leyendo

Desinstalar instancia de SQL Server u otros componentes

Para ingresar ventana de desinstalación de componentes de SQL Server debe ejecutarse el siguiente comando:

ARPWrapper.exe /Remove

Esta aplicación se encuentra ubicada en la carpeta Setup Bootstrap, ubicada en la carpeta de instalación de la instancia de SQL Server. Sigue leyendo