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 | +-----------------------+---------------+