SQL Server heeft een HAS_DBACCESS() functie die informatie retourneert over of de gebruiker toegang heeft tot een gespecificeerde database.
Syntaxis
De syntaxis gaat als volgt:
HAS_DBACCESS ( 'database_name' )
De functie retourneert 1 als de gebruiker toegang heeft tot de database, 0 als de gebruiker geen toegang heeft tot de database, en NULL als de databasenaam niet geldig is.
Het retourneert 0 als de database offline of verdacht is, en deze retourneert 0 als de database in de modus voor één gebruiker staat en de database door een andere gebruiker wordt gebruikt.
Voorbeeld
Hier is een voorbeeld om te demonstreren:
SELECT HAS_DBACCESS('KrankyKranes'); Resultaat:
1
In dit geval 1 is geretourneerd, wat betekent dat de gebruiker toegang heeft tot de KrankyKranes database.
Niet-bestaande database
Als de database niet bestaat, is het resultaat NULL :
SELECT HAS_DBACCESS('Oops'); Resultaat:
NULL
Controleer alle databases
We kunnen de volgende query gebruiken om de toegang tot alle databases in de SQL Server-instantie te controleren:
SELECT
name AS DB,
HAS_DBACCESS(name) AS HasDBAccess
FROM sys.databases; Resultaat:
+-----------------------+---------------+ | DB | HasDBAccess | |-----------------------+---------------| | master | 1 | | tempdb | 1 | | model | 1 | | msdb | 1 | | Music | 1 | | KrankyKranes | 1 | | Test | 1 | | WideWorldImporters | 1 | | World | 1 | | DomainDispute | 1 | | PetHotel | 1 | | StereoSystems | 1 | | NarrowNationExporters | 1 | +-----------------------+---------------+
In dat geval had ik toegang tot alle databases.
Dit is wat er gebeurt als ik de query uitvoer als een gebruiker met toegang tot minder databases:
SELECT
name AS DB,
HAS_DBACCESS(name) AS HasDBAccess
FROM sys.databases; Resultaat:
+-----------------------+---------------+ | DB | HasDBAccess | |-----------------------+---------------| | master | 1 | | tempdb | 1 | | model | 0 | | msdb | 1 | | Music | 0 | | KrankyKranes | 0 | | Test | 1 | | WideWorldImporters | 0 | | World | 0 | | DomainDispute | 0 | | PetHotel | 0 | | StereoSystems | 0 | | NarrowNationExporters | 0 | +-----------------------+---------------+