IS_SRVROLEMEMBER (Transact-SQL)

Wskazuje, czy SQL Server logowania jest element członkowski określonej stała rola serwera.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

Argumenty

  • 'role'
    Jest to nazwa roli serwera, który podczas sprawdzania.roleis sysname.

    Prawidłowymi wartościami dla role obejmują następujące:

    • sysadmin

    • dbcreator

    • bulkadmin

    • diskadmin

    • processadmin

    • serveradmin

    • setupadmin

    • securityadmin

  • 'login'
    Jest to nazwa SQL Server logowania do wyboru. login jest sysname, domyślna wartość NULL.Jeżeli nie określono wartości, wynik będzie oparte na bieżący kontekst wykonania.

Zwracane typy

int

Uwagi

IS_SRVROLEMEMBER zwraca następujące wartości.

Zwracanie wartości

Opis

0

loginelement członkowski nie jest role.

1

loginelement członkowski role.

NULL

rolelub login jest nieprawidłowa.

Ta funkcja służy do określenia, czy bieżący użytkownik może wykonywać akcja wymagające uprawnień roli serwera.

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

Jeśli nie podano parametru opcjonalnego logowania i logowania jest logowanie do domena systemu Windows może być element członkowski stała rola serwera poprzez członkostwo w grupie systemu Windows.W celu rozwiązania takiego pośredniego członkostwa IS_SRVROLEMEMBER żądania Windows grupy informacji o członkostwie z kontrolerem domena .Jeśli kontroler domena jest niedostępny lub nie odpowiada, IS_SRVROLEMEMBER zwraca pobieranie informacji członkostwa roli do konta użytkownika i jego tylko grupy lokalne.Jeśli bieżący użytkownik nie jest określany przez użytkownika, wartość zwracana przez IS_SRVROLEMEMBER mogą różnić się od wystawca uwierzytelnieniaużytkownika (takich jak usługa Active Directory) ostatnio dane Odśwież, aby SQL Server.

Jeśli podano parametr opcjonalny logowania logowania systemu Windows, którego dotyczy kwerenda musi znajdować się w sys.server_principals, lub IS_SRVROLEMEMBER zwróci wartość NULL.Wskazuje identyfikator logowania jest nieprawidłowa.

Gdy parametr logowania jest logowanie do domena lub na podstawie grupy systemu Windows i kontroler domena jest niedostępny, wywołania IS_SRVROLEMEMBER zakończy się niepowodzeniem i może zwrócić nieprawidłowych lub niekompletnych danych.

Jeśli kontroler domena jest niedostępny, wywołanie IS_SRVROLEMEMBER zwróci dokładnych informacji na zasadzie systemu Windows mogą być uwierzytelniani lokalnie, takich jak lokalne konto systemu Windows lub SQL Server logowania.

Kontrola konta użytkownika (UAC) 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żytkownik uzyskał dostęp do serwera jako element członkowski grupy systemu Windows lub określonego SQL Server użytkownika.Aby uzyskać więcej informacji na temat kontroli konta użytkownika, zobacz Jak Połącz się z SQL Server z systemu Windows Vista.

Ta funkcja ocenia członkostwa roli, uprawnienia podstawowej.Na przykład sysadmin stała rola serwera ma CONTROL SERVER uprawnienia.Jeśli użytkownik ma CONTROL SERVER uprawnień ale nie jest element członkowski roli, ta funkcja poprawnie zgłasza, że użytkownik nie jest element członkowski sysadmin rolę nawet wtedy, gdy użytkownik ma takie same uprawnienia.

Przykłady

Poniższy przykład wskazuje, czy SQL Server logowania dla bieżącego użytkownika jest elementem element członkowski 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.'