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.

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

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