Поделиться через


xp_logininfo (Transact-SQL)

Область применения:SQL Server

Возвращают сведения о пользователях и группах Windows.

Соглашения о синтаксисе Transact-SQL

Синтаксис

xp_logininfo [ [ @acctname = ] 'account_name' ]
     [ , [ @option = ] 'all' | 'members' ]
     [ , [ @privilege = ] 'variable_name' OUTPUT ]

Аргументы

[ @acctname = ] '@acctname'

Имя пользователя Или группы Windows, которому предоставлен доступ к SQL Server. @acctname имеет имя sysname с значением по умолчаниюNULL. Если @acctname не указано, сообщаются все группы Windows и пользователи Windows, которые явно предоставляют разрешение на вход. @acctname должны быть полностью квалифицированы. Например, CONTOSO\macraes или BUILTIN\Administrators.

[ @option = ] 'all' | 'членов'

Указывает, следует ли доставлять данные обо всех путях разрешений для данной учетной записи или только сведения о членах группы Windows. @option — varchar(10) с значением по умолчаниюNULL. Если не all указано, отображается только первый путь разрешения.

[ @privilege = ] 'variable_name' OUTPUT

Выходной параметр, возвращающий уровень привилегий указанной учетной записи Windows. @privilege — varchar(10) с значением по умолчаниюNot wanted. Возвращаемый уровень привилегий — user, adminили null.

Если OUTPUT этот параметр указан, этот параметр помещает @privilege в выходной параметр.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Имя столбца Тип данных Description
account name sysname Полностью уточненное имя учетной записи Windows.
type char(8) Тип учетной записи Windows. Допустимые значения — user или group.
privilege char(9) Доступ к привилегиям для SQL Server. Допустимые значения: admin, user или NULL.
mapped login name sysname Для учетных записей пользователей, имеющих привилегии пользователя, mapped login name отображает сопоставленное имя входа, которое SQL Server пытается использовать при входе в эту учетную запись с помощью сопоставленных правил с именем домена, добавленным перед ним.
permission path sysname Членство в группе, разрешающее доступ к учетной записи.

Замечания

Если указан @acctname , xp_logininfo сообщает самый высокий уровень привилегий указанного пользователя или группы Windows. Если у пользователя Windows есть доступ как системный администратор, так и как пользователь домена, он сообщается как системный администратор. Если пользователь входит в несколько групп Windows с равными привилегиями, сообщается только группа, которая сначала предоставляет доступ к SQL Server.

Если @acctname является допустимым пользователем или группой Windows, не связанной с именем входа SQL Server, возвращается пустой результирующий набор. Если @acctname не удается определить как допустимого пользователя или группы Windows, возвращается сообщение об ошибке.

Если @acctname и all указаны, возвращаются все пути разрешений для пользователя или группы Windows. Если @acctname является членом нескольких групп, все из которых предоставляются доступ к SQL Server, возвращаются несколько строк. Строки admin привилегий возвращаются перед user строками привилегий и на уровне привилегий возвращаются в том порядке, в котором были созданы соответствующие имена входа SQL Server.

Если @acctname и members указаны, возвращается список членов группы следующего уровня. Если @acctname является локальной группой, в списке могут быть локальные пользователи, пользователи домена и группы. Если @acctname является учетной записью домена, список состоит из пользователей домена. SQL Server должен подключиться к контроллеру домена, чтобы получить сведения о членстве в группах. Если сервер не может связаться с контроллером домена, данные не возвращаются.

xp_logininfo возвращает только информацию из глобальных групп Active Directory, а не универсальных групп.

Разрешения

Требуется разрешение CONTROL SERVER на сервере или учетная запись пользователя в базе данных master с разрешением EXECUTE, предоставленным xp_logininfo.

Примеры

В следующем примере отображаются сведения о BUILTIN\Administrators группе Windows.

EXECUTE xp_logininfo 'BUILTIN\Administrators';