SUSER_SNAME (Transact-SQL)
Restituisce il nome dell'account di accesso associato a un ID di protezione (SID).
Convenzioni della sintassi Transact-SQL
- server_user_sid
-
ID di protezione dell'account di accesso. L'argomento server_user_sid, facoltativo, è di tipo varbinary(85). server_user_sid può essere l'ID di protezione di qualsiasi account di accesso di SQL Server o di qualsiasi utente o gruppo di Microsoft Windows. Se non si specifica server_user_sid, vengono restituite informazioni sull'utente corrente.
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 protezione 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.
A. Utilizzo della funzione SUSER_SNAME
Nell'esempio seguente viene restituito il nome dell'account di accesso corrispondente all'ID di protezione 0x01.
SELECT SUSER_SNAME(0x01); GO
B. Utilizzo della funzione SUSER_SNAME con l'ID di protezione di un utente di Windows
Nell'esempio seguente viene restituito il nome dell'account di accesso associato a un ID di protezione di Windows.
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 AdventureWorks; 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.
SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO
Risultato:
sa
WanidaBenShoof
sa
Riferimento
SUSER_SID (Transact-SQL)sys.server_principals (Transact-SQL)
