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