Condividi tramite


SUSER_SNAME (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

SUSER_SNAME ( [ server_user_sid ] )

Argomenti

server_user_sid

Numero di identificazione di sicurezza dell'account di accesso facoltativo. 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 Windows. Fare riferimento alla sid colonna nelle sys.server_principals viste del catalogo o sys.sql_logins . Se server_user_sid non viene specificato, vengono restituite informazioni sull'utente corrente. Se il parametro contiene la parola NULL, SUSER_SNAME restituisce NULL.

server_user_sid non è supportato in database SQL di Azure.

Tipo restituito

nvarchar(128)

Osservazioni:

SUSER_SNAME può essere usato come vincolo DEFAULT in ALTER TABLE o CREATE TABLE. SUSER_SNAME può essere usato in un elenco di selezione, in una clausola WHERE e ovunque sia consentita un'espressione. SUSER_SNAME deve essere sempre seguita da parentesi, anche se non viene specificato alcun parametro.

Quando viene chiamato senza un argomento, SUSER_SNAME restituisce il nome del contesto di sicurezza corrente. Quando viene chiamato senza un argomento all'interno di un batch che ha cambiato contesto tramite EXECUTE AS, SUSER_SNAME restituisce il nome del contesto rappresentato. Quando viene chiamato da un contesto rappresentato, ORIGINAL_LOGIN restituisce il nome del contesto originale.

database SQL di Azure osservazioni

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

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

SUSER_SNAME non supporta l'argomento server_user_id .

Esempi

R. Usare SUSER_SNAME

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

SELECT SUSER_SNAME();
GO

B. Usare SUSER_SNAME con un ID di sicurezza utente di Windows

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

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

C. Usare SUSER_SNAME come vincolo DEFAULT

Nell'esempio seguente viene SUSER_SNAME usato come vincolo DEFAULT in un'istruzione CREATE TABLE .

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

D. Chiamare SUSER_SNAME in combinazione con EXECUTE AS

In questo esempio viene illustrato il comportamento di SUSER_SNAME quando viene chiamato da un contesto rappresentato.

SELECT SUSER_SNAME();
GO

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

REVERT;
GO

SELECT SUSER_SNAME();
GO

Questo è il risultato.

sa
WanidaBenShoof
sa

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

E. Usare 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. Restituire l'account di accesso corrente

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

SELECT SUSER_SNAME() AS CurrentLogin;
GO