xp_logininfo (Transact-SQL)
Aplica-se: SQL Server
Retorna informações sobre os usuários e grupos do Windows.
Convenções de sintaxe de Transact-SQL
Sintaxe
xp_logininfo [ [ @acctname = ] 'account_name' ]
[ , [ @option = ] 'all' | 'members' ]
[ , [ @privilege = ] 'variable_name' OUTPUT ]
Argumentos
@acctname [ = ] '@acctname'
O nome de um usuário ou grupo do Windows com acesso concedido ao SQL Server. @acctname é sysname, com um padrão de NULL
. Se @acctname não for especificado, todos os grupos do Windows e usuários do Windows que receberam permissão de logon explicitamente serão relatados. @acctname deve ser totalmente qualificado. Por exemplo, CONTOSO\macraes
, ou BUILTIN\Administrators
.
@option [ = ] 'todos' | 'membros' ]
Especifica se as informações sobre todos os caminhos de permissão para a conta ou sobre os membros do grupo do Windows devem ser relatadas. @option é varchar(10), com um padrão de NULL
. A menos que all
seja especificado, somente o primeiro caminho de permissão é exibido.
@privilege [ = ] 'variable_name' SAÍDA ]
Um parâmetro de saída que retorna o nível de privilégio da conta do Windows especificada. @privilege é varchar(10), com um padrão de Not wanted
. O nível de privilégio retornado é user, admin ou null.
Quando OUTPUT
é especificado, essa opção coloca @privilege no parâmetro de saída.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
Nome da conta | sysname | Nome da conta do Windows completamente qualificada. |
tipo | char(8) | Tipo de conta do Windows. Os valores válidos são user ou group . |
privilégio | char(9) | Privilégio de acesso para SQL Server. Os valores válidos são admin , user ou NULL . |
Nome de login mapeado | sysname | Para contas de usuário que têm privilégio de usuário, o nome de logon mapeado mostra o nome de logon mapeado que o SQL Server tenta usar ao fazer logon com essa conta usando as regras mapeadas com o nome de domínio adicionado antes dele. |
caminho de permissão | sysname | Associação de grupo que permitiu o acesso à conta. |
Comentários
Se @acctname for especificado, xp_logininfo
relatará o nível de privilégio mais alto do usuário ou grupo do Windows especificado. Se um usuário do Windows tiver acesso como administrador do sistema e como usuário do domínio, ele será relatado como administrador do sistema. Se o usuário for membro de vários grupos do Windows de igual nível de privilégio, somente o grupo que recebeu acesso ao SQL Server pela primeira vez será relatado.
Se @acctname for um usuário ou grupo válido do Windows que não esteja associado a um logon do SQL Server, um conjunto de resultados vazio será retornado. Se @acctname não puder ser identificado como um usuário ou grupo válido do Windows, uma mensagem de erro será retornada.
Se @acctname e all
forem especificados, todos os caminhos de permissão para o usuário ou grupo do Windows serão retornados. Se @acctname for membro de vários grupos, todos os quais receberam acesso ao SQL Server, várias linhas serão retornadas. As admin
linhas de privilégio são retornadas antes das linhas de privilégio e, dentro de user
um nível de privilégio, as linhas são retornadas na ordem em que os logons correspondentes do SQL Server foram criados.
Se @acctname e members
forem especificados, uma lista dos membros do próximo nível do grupo será retornada. Se @acctname for um grupo local, a listagem poderá incluir usuários locais, usuários de domínio e grupos. Se @acctname for uma conta de domínio, a lista será composta por usuários de domínio. O SQL Server deve se conectar ao controlador de domínio para recuperar informações de associação de grupo. Se o servidor não puder entrar em contato com o controlador de domínio, nenhuma informação será retornada.
xp_logininfo
Retorna apenas informações de grupos globais do Active Directory, não de grupos universais.
Permissões
Requer associação na função de servidor fixa sysadmin ou associação na função de banco de dados fixa pública no banco de dados com a master
permissão EXECUTE concedida.
Exemplos
O exemplo a seguir exibe informações sobre o grupo do Windows BUILTIN\Administrators
.
EXEC xp_logininfo 'BUILTIN\Administrators';