title | description | author | ms.author | ms.reviewer | ms.date | ms.service | ms.subservice | ms.topic | f1_keywords | helpviewer_keywords | dev_langs | monikerRange | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SUSER_SNAME (Transact-SQL) |
SUSER_SNAME returns the login name associated with a security identification number (SID). |
MikeRayMSFT |
mikeray |
randolphwest |
10/04/2023 |
sql |
t-sql |
reference |
|
|
|
>= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || >= sql-server-linux-2017 || = azuresqldb-mi-current || =fabric |
[!INCLUDE sql-asdb-asdbmi-asa-pdw-fabricse-fabricdw]
Returns the login name associated with a security identification number (SID).
:::image type="icon" source="../../includes/media/topic-link-icon.svg" border="false"::: Transact-SQL syntax conventions
SUSER_SNAME ( [ server_user_sid ] )
The optional login security identification number. server_user_sid is varbinary(85). server_user_sid can be the security identification number of any [!INCLUDEssNoVersion] login or [!INCLUDEmsCoName] Windows user or group. Refer to the sid
column in sys.server_principals
or sys.sql_logins
catalog views. If server_user_sid isn't specified, information about the current user is returned. If the parameter contains the word NULL
, SUSER_SNAME
returns NULL
.
server_user_sid is not supported on [!INCLUDE ssazure-sqldb].
nvarchar(128)
SUSER_SNAME
can be used as a DEFAULT constraint in either ALTER TABLE
or CREATE TABLE
. SUSER_SNAME
can be used in a select list, in a WHERE clause, and anywhere an expression is allowed. SUSER_SNAME
must always be followed by parentheses, even if no parameter is specified.
When called without an argument, SUSER_SNAME
returns the name of the current security context. 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. When called from an impersonated context, ORIGINAL_LOGIN
returns the name of the original context.
[!INCLUDE ssazure-sqldb] remarks
SUSER_SNAME
always returns the login name for the current security context.
The SUSER_SNAME
statement doesn't support execution using an impersonated security context through EXECUTE AS.
SUSER_SNAME
doesn't support the server_user_id argument.
The following example returns the login name for the current security context.
SELECT SUSER_SNAME();
GO
The following example returns the login name associated with a Windows security identification number.
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
The following example uses SUSER_SNAME
as a DEFAULT constraint in a CREATE TABLE
statement.
USE AdventureWorks2022;
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
This example shows the behavior of SUSER_SNAME
when called from an impersonated context.
SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO
Here is the result.
sa
WanidaBenShoof
sa
Examples: [!INCLUDEssazuresynapse-md] and [!INCLUDEssPDW]
The following example returns the login name for the security identification number with a value of 0x01
.
SELECT SUSER_SNAME(0x01);
GO
The following example returns the login name of the current login.
SELECT SUSER_SNAME() AS CurrentLogin;
GO