xp_logininfo (Transact-SQL)
Se aplica a: SQL Server
Devuelve información sobre usuarios y grupos de Windows.
Convenciones de sintaxis de Transact-SQL
Sintaxis
xp_logininfo [ [ @acctname = ] 'account_name' ]
[ , [ @option = ] 'all' | 'members' ]
[ , [ @privilege = ] 'variable_name' OUTPUT ]
Argumentos
[ @acctname = ] '@acctname'
Nombre de un usuario o grupo de Windows al que se concedió acceso a SQL Server. @acctname es sysname, con un valor predeterminado de NULL
. Si no se especifica @acctname , se notifican todos los grupos de Windows y los usuarios de Windows a los que se ha concedido explícitamente el permiso de inicio de sesión. @acctname deben estar completos. Por ejemplo, CONTOSO\macraes
o BUILTIN\Administrators
.
[ @option = ] 'all' | 'members' ]
Especifica si se presenta información de todas las rutas de acceso a permisos de la cuenta o si se presenta información de los miembros del grupo de Windows. @option es varchar(10), con un valor predeterminado de NULL
. A menos que all
se especifique, solo se muestra la primera ruta de acceso de permiso.
[ @privilege = ] 'variable_name' OUTPUT ]
Parámetro de salida que devuelve el nivel de privilegio de la cuenta de Windows especificada. @privilege es varchar(10), con un valor predeterminado de Not wanted
. El nivel de privilegio devuelto es user, admin o null.
Cuando OUTPUT
se especifica, esta opción coloca @privilege en el parámetro de salida.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Conjunto de resultados
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
nombre de cuenta | sysname | Nombre completo de la cuenta de Windows. |
type | char(8) | Tipo de cuenta de Windows. Los valores válidos son user y group . |
privilegio (privilege) | char(9) | Privilegio de acceso para SQL Server. Los valores válidos son admin , user o NULL . |
nombre de inicio de sesión asignado | sysname | En el caso de las cuentas de usuario con privilegios de usuario, el nombre de inicio de sesión asignado muestra el nombre de inicio de sesión asignado que SQL Server intenta usar al iniciar sesión con esta cuenta mediante las reglas asignadas con el nombre de dominio agregado antes de ella. |
ruta de acceso de permiso | sysname | Pertenencia al grupo que permite que la cuenta tenga acceso. |
Comentarios
Si se especifica @acctname , xp_logininfo
notifica el nivel de privilegio más alto del usuario o grupo de Windows especificado. Si un usuario de Windows tiene acceso como administrador del sistema y como usuario de dominio, se notifica como administrador del sistema. Si el usuario es miembro de varios grupos de Windows de nivel de privilegios iguales, solo se notifica el grupo al que se concedió acceso por primera vez a SQL Server.
Si @acctname es un usuario o grupo de Windows válido que no está asociado a un inicio de sesión de SQL Server, se devuelve un conjunto de resultados vacío. Si @acctname no se puede identificar como un usuario o grupo válidos de Windows, se devuelve un mensaje de error.
Si @acctname y all
se especifican, se devuelven todas las rutas de acceso de permisos para el usuario o grupo de Windows. Si @acctname es miembro de varios grupos, todos los cuales se han concedido acceso a SQL Server, se devuelven varias filas. Las admin
filas de privilegios se devuelven antes de las user
filas de privilegios y, dentro de un nivel de privilegios, las filas se devuelven en el orden en que se crearon los inicios de sesión de SQL Server correspondientes.
Si se especifican @acctname y members
, se devuelve una lista de los miembros de siguiente nivel del grupo. Si @acctname es un grupo local, la lista puede incluir usuarios locales, usuarios de dominio y grupos. Si @acctname es una cuenta de dominio, la lista se compone de usuarios de dominio. SQL Server debe conectarse al controlador de dominio para recuperar la información de pertenencia a grupos. Si el servidor no puede ponerse en contacto con el controlador de dominio, no se devuelve información.
xp_logininfo
solo devuelve información de grupos globales de Active Directory, no de grupos universales.
Permisos
Requiere la pertenencia al rol fijo de servidor sysadmin o a la pertenencia al rol fijo de base de datos público de la master
base de datos con el permiso EXECUTE concedido.
Ejemplos
En el ejemplo siguiente se muestra información sobre el BUILTIN\Administrators
grupo de Windows.
EXEC xp_logininfo 'BUILTIN\Administrators';