IS_SRVROLEMEMBER (Transact-SQL)

Указывает, является ли данное имя входа SQL Server 2005 членом указанной фиксированной серверной роли.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

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

Аргументы

  • 'role'
    Имя серверной роли, проверяемой в данный момент. Аргумент role является переменной типа sysname.

    К допустимым значениям аргумента role относятся:

    sysadmin

    • dbcreator
    • bulkadmin
    • diskadmin
    • processadmin
    • serveradmin
    • setupadmin
    • securityadmin
  • 'login'
    Имя входа SQL Server 2005, которое необходимо проверить. Аргумент login имеет тип sysname и значение по умолчанию NULL. Если значение не указано, используется имя входа текущего пользователя SQL Server.

Типы возвращаемых данных

int

Замечания

Функция IS_SRVROLEMEMBER возвращает следующие значения.

Возвращаемое значение Описание

0

Аргумент login не является членом аргумента role.

1

Аргумент login является членом аргумента role.

NULL

Недопустимое значение аргумента role или аргумента login.

С помощью данной функции определяется, может ли текущий пользователь выполнить действие, требующее разрешений серверной роли.

Если для аргумента login определено имя входа Microsoft Windows, например London\JoeB, то функция IS_SRVROLEMEMBER возвращает значение NULL в том случае, если имени входа не будет предоставлен или запрещен прямой доступ к SQL Server 2005.

Если в качестве имени входа используется имя входа для домена Windows, то оно может быть членом фиксированной серверной роли, будучи членом группы Windows. Чтобы решить проблему непрямого членства, функция IS_SRVROLEMEMBER запрашивает у контроллера домена сведения о членстве в группах Windows. Если контроллер домена недоступен или не отвечает, функция IS_SRVROLEMEMBER возвращает сведения о членстве в роли, принимая во внимание только учетную запись пользователя и локальные группы.

Примеры

В следующем примере показано, является ли имя входа SQL Server текущего пользователя членом фиксированной серверной роли sysadmin.

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

См. также

Справочник

IS_MEMBER (Transact-SQL)
Функции безопасности (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005