SUSER_SNAME (Transact-SQL)SUSER_SNAME (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Devuelve el nombre de inicio de sesión asociado a un número de identificación de seguridad (SID).Returns the login name associated with a security identification number (SID).

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

SUSER_SNAME ( [ server_user_sid ] )   

ArgumentosArguments

server_user_sidserver_user_sid
Se aplica a: de SQL Server 2008SQL Server 2008 a SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017

Se trata del número de identificación opcional de seguridad del inicio de sesión.Is the optional login security identification number. server_user_sid es varbinary(85) .server_user_sid is varbinary(85). server_user_sid puede ser el número de identificación de seguridad de cualquier inicio de sesión de SQL ServerSQL Server, o de un usuario o grupo de MicrosoftMicrosoft Windows.server_user_sid can be the security identification number of any SQL ServerSQL Server login or MicrosoftMicrosoft Windows user or group. Si no se especifica server_user_sid, se devuelve información acerca del usuario actual.If server_user_sid is not specified, information about the current user is returned. Si el parámetro contiene la palabra NULL, se devolverá NULL.If the parameter contains the word NULL will return NULL.

Tipos devueltosReturn Types

nvarchar(128)nvarchar(128)

NotasRemarks

SUSER_SNAME puede usarse como una restricción DEFAULT en ALTER TABLE o CREATE TABLE.SUSER_SNAME can be used as a DEFAULT constraint in either ALTER TABLE or CREATE TABLE. Se puede utilizar SUSER_SNAME en una lista de selección, en la cláusula WHERE y en cualquier lugar en el que se permita una expresión.SUSER_SNAME can be used in a select list, in a WHERE clause, and anywhere an expression is allowed. SUSER_SNAME siempre debe ir seguida de paréntesis, aunque no se especifique ningún parámetro.SUSER_SNAME must always be followed by parentheses, even if no parameter is specified.

Si se llama sin un argumento, SUSER_SNAME devuelve el nombre del contexto de seguridad actual.When called without an argument, SUSER_SNAME returns the name of the current security context. Si se llama sin un argumento en un lote que ha cambiado de contexto mediante EXECUTE AS, SUSER_SNAME devuelve el nombre del contexto suplantado.When called without an argument within a batch that has switched context by using EXECUTE AS, SUSER_SNAME returns the name of the impersonated context. Si se llama desde un contexto suplantado, ORIGINAL_LOGIN devuelve el nombre del contexto original.When called from an impersonated context, ORIGINAL_LOGIN returns the name of the original context.

Comentarios para Base de datos SQL de AzureAzure SQL DatabaseBase de datos SQL de AzureAzure SQL Database Remarks

SUSER_NAME siempre devuelve el nombre de inicio de sesión para el contexto de seguridad actual.SUSER_NAME always return the login name for the current security context.

La instrucción SUSER_SNAME no admite la ejecución con un contexto de seguridad suplantado a través de EXECUTE AS.The SUSER_SNAME statement does not support execution using an impersonated security context through EXECUTE AS.

EjemplosExamples

A.A. Usar SUSER_SNAMEUsing SUSER_SNAME

En el ejemplo siguiente se devuelve el nombre de inicio de sesión para el contexto de seguridad actual.The following example returns the login name for the current security context.

SELECT SUSER_SNAME();  
GO  

B.B. Usar SUSER_SNAME con un identificador de seguridad de usuario de WindowsUsing SUSER_SNAME with a Windows user security ID

En el siguiente ejemplo se devuelve el nombre de inicio de sesión asociado a un número de identificación de seguridad de Windows.The following example returns the login name associated with a Windows security identification number.

Se aplica a: de SQL Server 2008SQL Server 2008 a SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);  
GO  

C.C. Usar SUSER_SNAME como una restricción DEFAULTUsing SUSER_SNAME as a DEFAULT constraint

En el ejemplo siguiente se utiliza SUSER_SNAME como restricción DEFAULT en una instrucción CREATE TABLE.The following example uses SUSER_SNAME as a DEFAULT constraint in a CREATE TABLE statement.

USE AdventureWorks2012;  
GO  
CREATE TABLE sname_example  
(  
login_sname sysname DEFAULT SUSER_SNAME(),  
employee_id uniqueidentifier DEFAULT NEWID(),  
login_date  datetime DEFAULT GETDATE()  
);   
GO  
INSERT sname_example DEFAULT VALUES;  
GO  

D.D. Llamar a SUSER_SNAME junto con EXECUTE ASCalling SUSER_SNAME in combination with EXECUTE AS

En este ejemplo se muestra el comportamiento de SUSER_SNAME si se llama desde un contexto suplantado.This example shows the behavior of SUSER_SNAME when called from an impersonated context.

Se aplica a: de SQL Server 2008SQL Server 2008 a SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017

SELECT SUSER_SNAME();  
GO  
EXECUTE AS LOGIN = 'WanidaBenShoof';  
SELECT SUSER_SNAME();  
REVERT;  
GO  
SELECT SUSER_SNAME();  
GO  
  

Este es el resultado.Here is the result.

sa  
WanidaBenShoof  
sa

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

E.E. Usar SUSER_SNAMEUsing SUSER_SNAME

En el ejemplo siguiente se obtiene el nombre de inicio de sesión que corresponde al número de identificación de seguridad con un valor de 0x01.The following example returns the login name for the security identification number with a value of 0x01.

SELECT SUSER_SNAME(0x01);  
GO  

F.F. Devolución de inicio de sesión actualReturning the Current Login

En el ejemplo siguiente se devuelve el nombre de inicio de sesión del inicio de sesión actual.The following example returns the login name of the current login.

SELECT SUSER_SNAME() AS CurrentLogin;  
GO  

Consulte tambiénSee Also

SUSER_SID (Transact-SQL) SUSER_SID (Transact-SQL)
Entidades de seguridad (motor de base de datos) Principals (Database Engine)
sys.server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
EXECUTE AS (Transact-SQL)EXECUTE AS (Transact-SQL)