xp_logininfo (Transact-SQL)
Devuelve información sobre usuarios y grupos de Windows.
Sintaxis
xp_logininfo [ [ @acctname = ] 'account_name' ]
[ , [ @option = ] 'all' | 'members' ]
[ , [ @privilege = ] variable_name OUTPUT]
Argumentos
[ @acctname = ] 'account_name'
Es el nombre de un usuario o grupo de Windows al que se ha concedido acceso a SQL Server. account_name es de tipo sysname y su valor predeterminado es NULL. Si no se especifica account_name, se notifica a todos los grupos y usuarios de Windows a los que se haya concedido explícitamente permiso de inicio de sesión. account_name debe ser un nombre completo. Por ejemplo, 'ADVWKS4\macraes' o 'BUILTIN\Administrators'.'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 de tipo varchar(10) y su valor predeterminado es NULL. A menos que se especifique all, sólo se presenta la primera ruta de permisos.[ @privilege = ] variable_name
Es un parámetro de salida que devuelve el nivel de privilegio de la cuenta de Windows especificada. variable_name es de tipo varchar(10) y su valor predeterminado es 'No wanted' (no deseado). El nivel de privilegio devuelto es user, admin o null.OUTPUT
Si se especifica, coloca variable_name en el parámetro de salida.
Valores de código de retorno
0 (correcto) o 1 (error)
Conjuntos de resultados
Nombre de columna |
Tipo de datos |
Descripción |
---|---|---|
nombre de cuenta |
sysname |
Nombre completo de la cuenta de Windows. |
tipo |
char(8) |
Tipo de cuenta de Windows. Los valores válidos son user o group. |
privilegio |
char(9) |
Privilegio de acceso para SQL Server. Los valores válidos son admin, user o null. |
mapped login name |
sysname |
Para las cuentas de usuario con privilegios de usuario, mapped login name muestra el nombre del inicio de sesión asociado que SQL Server utiliza cuando se inicia la sesión con esta cuenta, utilizando las reglas de asociación con el nombre de dominio agregado antes del nombre de la cuenta. |
permission path |
sysname |
Pertenencia al grupo que permite que la cuenta tenga acceso. |
Comentarios
Si se especifica account_name , xp_logininfo notifica el mayor nivel de privilegio del usuario o grupo de Windows especificado. Si un usuario de Windows tiene acceso como administrador del sistema y como usuario del dominio, se le notificará como administrador del sistema. Si el usuario es miembro de varios grupos de Windows del mismo nivel de privilegio, sólo se le notificará en el grupo al que se concediera primero acceso a SQL Server.
Si account_name 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 no se puede identificar account_name como un usuario o grupo de Windows válido, se devuelve un mensaje de error.
Si se especifican account_name y all, se devuelven todas las rutas de permisos para el usuario o grupo de Windows. Si account_name es miembro de varios grupos a los que se ha concedido acceso a SQL Server, se devuelven varias filas. Se devuelven las filas del privilegio admin antes que las filas del privilegio user y, dentro de un mismo nivel de privilegio, se devuelven las filas en el orden de creación de los inicios de sesión de SQL Server correspondientes.
Si se especifican account_name y members, se devuelve la lista de los miembros del grupo del siguiente nivel. Si account_name es un grupo local, la lista puede incluir usuarios locales, usuarios del dominio y grupos. Si account_name es una cuenta de dominio, la lista está formada por usuarios del dominio. SQL Server debe conectarse al controlador de dominio para recuperar la información de pertenencia a grupos. Si el servidor no puede contactar con el controlador de dominio, no se obtendrá ninguna información.
xp_logininfo sólo devuelve información de los grupos globales de Active Directory, no de los grupos universales.
Permisos
Requiere la pertenencia a un rol fijo de servidor sysadmin o a un rol fijo de base de datos public en la base de datos master con el permiso EXECUTE.
Ejemplos
En el ejemplo siguiente se muestra información sobre el grupo de Windows BUILTIN\Administrators.
EXEC xp_logininfo 'BUILTIN\Administrators'