IS_SRVROLEMEMBER (Transact-SQL)
Gibt an, ob eine SQL Server 2005-Anmeldung Mitglied der angegebenen festen Serverrolle ist.
Transact-SQL-Syntaxkonventionen
Syntax
IS_SRVROLEMEMBER ('role' [ , 'login' ] )
Argumente
'role'
Der Name der zu überprüfenden Serverrolle. role ist ein Wert vom Datentyp sysname.Gültige Werte für role sind:
sysadmin
- dbcreator
- bulkadmin
- diskadmin
- processadmin
- serveradmin
- setupadmin
- securityadmin
- 'login'
Der Name der zu überprüfenden SQL Server 2005-Anmeldung. login ist ein Wert vom Datentyp sysname, der Standardwert ist NULL. Wird kein Wert angegeben, wird die SQL Server-Anmeldung des aktuellen Benutzers verwendet.
Rückgabetypen
int
Hinweise
IS_SRVROLEMEMBER gibt folgende Werte zurück.
Rückgabewert | Beschreibung |
---|---|
0 |
login ist kein Mitglied von role. |
1 |
login ist ein Mitglied von role. |
NULL |
role oder login ist nicht gültig. |
Mit dieser Funktion legen Sie fest, ob der aktuelle Benutzer eine Aktion ausführen kann, für die die Berechtigungen der Serverrolle erforderlich sind.
Wenn eine Microsoft Windows-Anmeldung, wie z. B. London\JoeB, für login angegeben wird, gibt IS_SRVROLEMEMBER den Wert NULL zurück, falls der Anmeldung der direkte Zugriff auf SQL Server 2005 nicht erteilt oder verweigert wurde.
Wenn die Anmeldung eine Windows-Domänenanmeldung ist, kann sie aufgrund der Mitgliedschaft in einer Windows-Gruppe Mitglied einer festen Serverrolle sein. Um derartige indirekte Mitgliedschaften aufzulösen, fordert IS_SRVROLEMEMBER Informationen zu Windows-Gruppenmitgliedschaften vom Domänencontroller an. Wenn nicht auf den Domänencontroller zugegriffen werden kann, oder wenn der Domänencontroller nicht reagiert, berücksichtigt IS_SRVROLEMEMBER beim Zurückgeben der Informationen zur Rollenmitgliedschaft nur den Benutzer und die lokalen Gruppen.
Beispiele
Das folgende Beispiel gibt an, ob die SQL Server-Anmeldung für den aktuellen Benutzer Mitglied der festen Serverrolle sysadmin
ist.
IF IS_SRVROLEMEMBER ('sysadmin') = 1
print 'Current user''s login is a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') = 0
print 'Current user''s login is NOT a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') IS NULL
print 'ERROR: The server role specified is not valid.'
Siehe auch
Verweis
IS_MEMBER (Transact-SQL)
Sicherheitsfunktionen (Transact-SQL)