IS_MEMBER (Transact-SQL)
Определяет, является ли текущий пользователь членом указанной группы Microsoft Windows или роли базы данных Microsoft SQL Server.
Синтаксические обозначения в Transact-SQL
Синтаксис
IS_MEMBER ( { 'group' | 'role' } )
Аргументы
- 'group'
Имя проверяемой группы Windows; должно иметь формат Domain\Group. Аргумент group имеет тип sysname.
- 'role'
Имя проверяемой роли SQL Server. Аргумент role имеет тип sysname и может содержать фиксированные роли базы данных или пользовательские роли, но не серверные.
Типы возвращаемых данных
int
Замечания
Функция IS_MEMBER возвращает следующие значения.
Возвращаемое значение | Описание |
---|---|
0 |
Текущий пользователь не является членом группы group или роли role. |
1 |
Текущий пользователь является членом группы group или роли role. |
NULL |
Аргумент group или role недопустим. |
Функция IS_MEMBER определяет членство в группе Windows, проверяя маркер доступа, созданный Windows. Маркер доступа не отражает изменения членства в группе, внесенные после подключения пользователя к экземпляру SQL Server.
Примеры
В следующем примере проверяется, является ли текущий пользователь членом роли базы данных или группы домена 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
См. также
Справочник
IS_SRVROLEMEMBER (Transact-SQL)
Представления каталога безопасности (Transact-SQL)
Хранимая процедура sp_addrolemember (Transact-SQL)
sp_addsrvrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
sp_dropsrvrolemember (Transact-SQL)