Condividi tramite


USER_NAME (Transact-SQL)

Restituisce un nome di un utente del database corrispondente al numero di identificazione specificato.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

USER_NAME ( [ id ] )

Argomenti

  • id
    Numero di identificazione associato a un utente del database. id è di tipo int. È necessario utilizzare le parentesi.

Tipi restituiti

nvarchar(256)

Osservazioni

Se id viene omesso, viene utilizzato l'utente corrente nel contesto corrente. Se è inclusa la parola NULL, verrà restituito NULL. Se la funzione USER_NAME viene richiamata senza specificare id dopo un'istruzione EXECUTE AS, viene restituito il nome dell'utente rappresentato. Se un'entità di Windows accede al database in base all'appartenenza a un gruppo, USER_NAME restituisce il nome dell'entità di Windows anziché il gruppo.

Esempi

A. Utilizzo di USER_NAME

Nell'esempio seguente viene restituito il nome utente per l'ID utente 13.

SELECT USER_NAME(13);
GO

B. Utilizzo di USER_NAME senza un ID

Nell'esempio seguente viene restituito il nome dell'utente corrente senza specificare un ID.

SELECT USER_NAME();
GO

Set di risultati (per un utente membro del ruolo predefinito del server sysadmin):

------------------------------

dbo

(1 row(s) affected)

C. Utilizzo di USER_NAME nella clausola WHERE

Nell'esempio seguente viene restituita la riga di sysusers contenente un nome che corrisponde al risultato della funzione di sistema USER_NAME per il numero di identificazione utente 1.

SELECT name FROM sysusers WHERE name = USER_NAME(1);
GO

Set di risultati:

name

------------------------------

dbo

(1 row(s) affected)

D. Chiamata della funzione USER_NAME durante la rappresentazione tramite EXECUTE AS

Nell'esempio seguente viene illustrato il comportamento della funzione USER_NAME durante la rappresentazione.

SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO

Set di risultati:

DBO

Zelig

DBO