SUSER_SNAME (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

Restituisce il nome dell'account di accesso associato a un ID di sicurezza (SID).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

SUSER_SNAME ( [ server_user_sid ] )   

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

server_user_sid
Si applica a: SQL Server 2008 e versioni successive

Numero identificativo di sicurezza facoltativo dell'account di accesso. server_user_sid è di tipo varbinary(85). server_user_sid può essere l'ID di sicurezza (SID) di qualsiasi account di accesso di SQL Server o di qualsiasi utente o gruppo di Microsoft. Se non si specifica server_user_sid, vengono restituite informazioni sull'utente corrente. Se nel parametro è inclusa la parola NULL, verrà restituito NULL.

Tipi restituiti

nvarchar(128)

Commenti

La funzione SUSER_SNAME può essere utilizzata come vincolo DEFAULT nell'istruzione ALTER TABLE o CREATE TABLE. È possibile utilizzare SUSER_SNAME nell'elenco di selezione, nella clausola WHERE e in tutti i casi in cui è consentita un'espressione. SUSER_SNAME deve essere sempre seguita da una coppia di parentesi, anche se non si specifica alcun parametro.

Se chiamata senza argomenti, la funzione SUSER_SNAME restituisce il nome del contesto di sicurezza corrente. Se chiamata senza argomenti all'interno di un batch che ha cambiato contesto tramite EXECUTE AS, la funzione SUSER_SNAME restituisce il nome del contesto rappresentato. Se chiamata da un contesto rappresentato, ORIGINAL_LOGIN restituisce il nome del contesto originale.

database SQL di Azure Osservazioni

SUSER_NAME restituisce sempre il nome dell'account di accesso per il contesto di sicurezza corrente.

L'istruzione SUSER_SNAME non supporta l'esecuzione con un contesto di sicurezza rappresentato tramite EXECUTE AS.

Esempi

R. Utilizzo di SUSER_SNAME

Nell'esempio seguente viene restituito il nome dell'account di accesso per il contesto di sicurezza corrente.

SELECT SUSER_SNAME();  
GO  

B. Utilizzo della funzione SUSER_SNAME con l'ID di sicurezza di un utente di Windows

Nell'esempio seguente viene restituito il nome dell'account di accesso associato a un ID di sicurezza di Windows.

Si applica a: SQL Server 2008 e versioni successive

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);  
GO  

C. Utilizzo della funzione SUSER_SNAME come vincolo DEFAULT

Nell'esempio seguente la funzione SUSER_SNAME viene utilizzata come vincolo DEFAULT in un'istruzione CREATE TABLE.

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. Chiamata della funzione SUSER_SNAME in combinazione con EXECUTE AS

In questo esempio viene illustrato il funzionamento della funzione SUSER_SNAME quando viene chiamata da un contesto rappresentato.

Si applica a: SQL Server 2008 e versioni successive

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

Risultato:

sa  
WanidaBenShoof  
sa

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

E. Utilizzo di SUSER_SNAME

Nell'esempio seguente viene restituito il nome dell'account di accesso corrispondente all'ID di sicurezza 0x01.

SELECT SUSER_SNAME(0x01);  
GO  

F. Restituzione dell'account di accesso corrente

L'esempio seguente restituisce il nome dell'account di accesso corrente.

SELECT SUSER_SNAME() AS CurrentLogin;  
GO  

Vedere anche

SUSER_SID (Transact-SQL)
Entità (motore di database)
sys.server_principals (Transact-SQL)
EXECUTE AS (Transact-SQL)