IS_SRVROLEMEMBER (języka Transact-SQL)

Wskazuje, czy SQL Server logowanie jest element członkowski roli określonego serwera stałych.

Topic link iconKonwencje składni języka Transact-SQL

IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )

Argumenty

  • 'role'
    Is the name of the server role that is being checked.role is sysname.

    Prawidłowe wartości parametru role między innymi następujące:

    sysadmin

    • dbcreator

    • bulkadmin

    • diskadmin

    • processadmin

    • serveradmin

    • setupadmin

    • securityadmin

  • 'login'
    Is the name of the SQL Server login to check.login is sysname, with a default of NULL.Jeśli nie określono wartości, wynik będzie się opierał w bieżącym kontekście wykonanie.

Zwracane typy

int

Remarks

IS_SRVROLEMEMBER zwraca następujące wartości.

Zwracanie wartości

Description

0

login nie jest element członkowski z role.

1

login element członkowski członkowski role.

WARTOŚCI NULL

role lub login nie jest prawidłowy.

Ta funkcja służy do określenia, czy bieżący użytkownik będzie mógł wykonać akcja wymaga uprawnienia roli serwera.

Jeśli identyfikator logowania systemu Windows, takich jak Contoso\Mary5, został określony dla login, IS_SRVROLEMEMBER Zwraca NULL, chyba że ma zostały udzielone lub odmówione bezpośredni dostęp do logowania się SQL Server.

Jeżeli nie podano parametru opcjonalnego logowania i jeśli logowania jest nazwa domena logowania systemu Windows, może to być element członkowski stała rola serwera poprzez element członkowski statku grupy systemu Windows.Aby rozwiązać taki pośrednich członkostwa IS_SRVROLEMEMBER informacje o członkostwie grup systemu Windows żąda od kontrolera domena. Jeśli kontroler domena jest niedostępny lub nie odpowiada IS_SRVROLEMEMBER Zwraca informacje dotyczące członkostwa roli biorąc pod uwagę użytkownika i jego tylko grupy lokalne. Jeśli bieżący użytkownik nie jest określonego użytkownika, wartość zwracana przez IS_SRVROLEMEMBER mogą różnić się od (takie jak usługa Active Directory) uwierzytelniającego odświeżyć ostatnio dane do SQL Server.

Jeśli parametr opcjonalny logowania zostanie podana, identyfikator logowania systemu Windows, która jest poszukiwanych musi znajdować się w sys.server_principals lub IS_SRVROLEMEMBER zwróci wartość NULL.Oznacza to, że identyfikator logowania nie jest prawidłowy.

Parametr logowania jest logowanie domena lub na podstawie grupy systemu Windows i kontroler domena nie jest dostępny, wywołania IS_SRVROLEMEMBER zakończy się niepowodzeniem i może zwrócić niekompletne lub niepoprawne dane.

Jeśli kontroler domena jest niedostępny, wywołanie IS_SRVROLEMEMBER zwróci dokładnych informacji, gdy zasady systemu Windows mogą być uwierzytelniani lokalnie, na przykład lokalnego konta systemu Windows lub SQL Server Zaloguj się.

Kontrola konta użytkownika (UAC, User Account Control) można znaleźć w Windows Vista i Windows Server 2008 mogą również zwracać różne wyniki. Będzie to zależało od czy użytkownikowi dostęp do serwera jako element członkowski członkowski grupy systemu Windows lub określonego SQL Server użytkownik. Aby uzyskać więcej informacji dotyczących kontroli konta użytkownika Zobacz How to: Connect to SQL Server from Windows Vista.

Przykłady

W poniższym przykładzie wskazuje, czy SQL Server Identyfikator logowania bieżącego użytkownika jest członkiem sysadmin stała rola serwera.

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.'