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