Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform Systeem (PDW)
SQL-database in Microsoft Fabric
Geeft aan of de huidige gebruiker lid is van de gespecificeerde Microsoft Windows-groep, Microsoft Entra-groep of SQL Server-databaserol.
De IS_MEMBER functie wordt ondersteund voor Microsoft Entra-groepen. Het enige geval waarin IS_MEMBER niet werkt, is als de groep de Microsoft Entra-beheerder is voor de SQL-instantie.
Transact-SQL syntaxis-conventies
Opmerking
Microsoft Entra-id werd voorheen Azure Active Directory (Azure AD) genoemd.
Syntaxis
IS_MEMBER ( { 'group' | 'role' } )
Arguments
'groep'
Van toepassing op: SQL Server 2008 (10.0.x) en later
Is de naam van de Windows- of Microsoft Entra-groep die wordt gecontroleerd. Een Windows-groep moet in het formaat Domain\Group staan. groep is sysname.
'rol'
Is de naam van de SQL Server-rol die wordt gecontroleerd.
Rol is Sysname en kan de vaste databaserollen of door de gebruiker gedefinieerde rollen omvatten, maar geen serverrollen.
Retourtypen
int
Opmerkingen
IS_MEMBER geeft de volgende waarden terug.
| Retourwaarde | Description |
|---|---|
| 0 | De huidige gebruiker is geen lid van de groep of rol. |
| 1 | De huidige gebruiker is lid van een groep of rol. |
| NUL | Of een groep of rol is niet geldig. Wanneer deze wordt bevraagd door een SQL Server-login of een login met een applicatierol, geeft het NULL terug voor een Windows-groep. |
IS_MEMBER bepaalt het lidmaatschap van de Windows-groep door een toegangstoken te onderzoeken dat door Windows is aangemaakt. Het toegangstoken weerspiegelt geen wijzigingen in het groepslidmaatschap die worden aangebracht nadat een gebruiker verbinding maakt met een instantie van SQL Server. Het lidmaatschap van een Windows-groep kan niet worden bevraagd door een SQL Server-login of een SQL Server-applicatierol.
Om leden toe te voegen en te verwijderen uit een databaserol, gebruik je ALTER ROLE (Transact-SQL). Om leden toe te voegen en te verwijderen uit een serverrol, gebruik je ALTER SERVER ROLE (Transact-SQL).
Deze functie evalueert rollidmaatschap, niet de onderliggende toestemming. Bijvoorbeeld, de db_owner vaste databaserol heeft de CONTROL DATABASE-machtiging . Als de gebruiker de CONTROL DATABASE-machtiging heeft maar geen lid is van de rol, rapporteert deze functie correct dat de gebruiker geen lid is van de db_owner rol, ook al heeft de gebruiker dezelfde rechten.
Leden van de sysadmin-vaste serverrol voeren elke database in als dbo-gebruiker . Het controleren van de rechten voor lid van de sysadmin-fixe serverrol, controleert de rechten voor dbo, niet voor de oorspronkelijke login. Omdat dbo niet aan een databaserol kan worden toegevoegd en niet bestaat in Windows-groepen, geeft dbo altijd 0 terug (of NULL als de rol niet bestaat).
Gerelateerde functies
Om te bepalen of een andere SQL Server-login lid is van een databaserol, gebruik IS_ROLEMEMBER (Transact-SQL). Om te bepalen of een SQL Server-login lid is van een serverrol, gebruik IS_SRVROLEMEMBER (Transact-SQL).
Voorbeelden
Het volgende voorbeeld controleert of de huidige gebruiker lid is van een databaserol of een Windows-domeingroep.
-- Test membership in db_owner and print appropriate message.
IF IS_MEMBER ('db_owner') = 1
PRINT 'Current user is a member of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') = 0
PRINT 'Current user is NOT a member of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') IS NULL
PRINT 'ERROR: Invalid group / role specified';
GO
-- Execute SELECT if user is a member of ADVWORKS\Shipping.
IF IS_MEMBER ('ADVWORKS\Shipping') = 1
SELECT 'User ' + USER + ' is a member of ADVWORKS\Shipping.';
GO
Zie ook
IS_SRVROLEMEMBER (Transact-SQL)
Principals (Databasemotor)
Beveiligingscatalogusweergaven (Transact-SQL)
beveiligingsfuncties (Transact-SQL)