Enumere las bases de datos disponibles para el usuario actual en SQL SERVER

Introducción :  

Una de las necesidades previas de Database Performance Health Check es tener acceso a la base de datos que vamos a ajustar. Como administradores de bases de datos de SQL, también podemos encontrar inesperado que, a veces, terminamos en una situación en la que tenemos un cliente que necesita que lo ayudemos con el rendimiento general de su base de datos, pero ellos mismos ya no tienen acceso a la servidor y base de datos. 

Veamos un script que podría enumerar todas las bases de datos a las que tiene acceso el usuario que ha iniciado sesión actualmente:

SELECT Name, HAS_DBACCESS(Name) AS HasAcces FROM sys.databases

La consulta anterior dará resultados similares a los siguientes:

Nombre Tiene acceso
Maestro 1
tempdb 1
modelo 1
msdb 1
geekdb 1

En la consulta, hemos utilizado la función HAS_DBACCESS que da como resultado información sobre si el usuario tiene acceso a toda la base de datos. Devuelve 1 si el usuario tiene acceso a la base de datos, 0 si el usuario no tiene acceso a la base de datos y NULL si el nombre de la base de datos no es válido.

Consulta para verificar si tenemos acceso a una base de datos específica o no:

SELECT HAS_DBACCESS('databasename') AS HasAccess

Ejemplo 1 :

SELECT HAS_DBACCESS('geekdb') AS HasAccess
Tiene acceso
1

Como DBA de SQL, siempre debemos recordar los resultados de la función HAS_DBACCESS . Cuando esta función da como resultado 0, también puede significar que la base de datos está fuera de línea\modo sospechoso\modo de usuario único u otros problemas que nos impiden usar la base de datos.

Ejemplo-2:

Para comprobar que el usuario actual tiene acceso a las siguientes bases de datos:

Ejecute la consulta anterior en SQL Server Management Studio –

Veamos dónde tiene acceso el usuario actual a “SQL_DBA1” –

SELECT HAS_DBACCESS('SQL_DBA1') AS HasAccess

El resultado fue NULL ya que la base de datos no existe en la instancia actual. 

Publicación traducida automáticamente

Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *