IS_MEMBER (Transact-SQL)
Wskazuje, czy bieżący użytkownik jest element członkowski określonej Microsoft grupy systemu Windows lub SQL Server rola bazy danych.
Składnia
IS_MEMBER ( { 'group' | 'role' } )
Argumenty
'group'
Jest nazwą grupy systemu Windows, która trwa sprawdzanie, czy; musi być w formacie domeny\grupy.groupis sysname.'role'
Jest to nazwa SQL Server rolę, która trwa sprawdzanie, czy. role jest sysname i może zawierać bazy danych, stałe role lub role zdefiniowane przez użytkownika, ale nie server role.
Zwracane typy
int
Uwagi
IS_MEMBER zwraca następujące wartości.
Zwracanie wartości |
Opis |
---|---|
0 |
Bieżący użytkownik nie jest element członkowski group lub role. |
1 |
Bieżący użytkownik jest elementem element członkowski group lub role. |
NULL |
Albo group lub role jest nieprawidłowa.Jeśli poszukiwana przez SQL Server logowania lub identyfikatora logowania za pomocą rola aplikacji, funkcja zwraca wartość NULL dla grupy systemu Windows. |
IS_MEMBER określa członkostwo grupy systemu Windows, sprawdzając token dostępu, który jest tworzony przez system Windows.Token dostępu nie odzwierciedla zmiany w członkostwie grupy po użytkownik łączy się z wystąpienie SQL Server. Nie można zbadać członkostwa grupy systemu Windows przez SQL Server logowania lub SQL Server rola aplikacji.
Ta funkcja ocenia członkostwa roli, uprawnienia podstawowej.Na przykład db_owner ma stałą rola bazy danych CONTROL DATABASE uprawnienia.Jeśli użytkownik ma CONTROL DATABASE uprawnień ale nie jest element członkowski roli, ta funkcja poprawnie zgłasza, że użytkownik nie jest element członkowski db_owner rolę nawet wtedy, gdy użytkownik ma takie same uprawnienia.
Przykłady
Poniższy przykład sprawdza, czy bieżący użytkownik jest element członkowski rola bazy danych lub grupy domena systemu Windows.
-- 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
Zobacz także