Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema di Piattaforma Analitica (PDW)
Database SQL in Microsoft Fabric
Questa funzione restituisce il nome dell'utente corrente ed equivale a USER_NAME().
Convenzioni relative alla sintassi Transact-SQL
Sintassi
CURRENT_USER
Tipi restituiti
sysname
Osservazioni:
CURRENT_USER restituisce il nome del contesto di protezione corrente. Se si esegue CURRENT_USER dopo una chiamata a EXECUTE AS per cambiare contesto, CURRENT_USER restituirà il nome del contesto rappresentato. Se un'entità di Windows ha effettuato l'accesso al database in base all'appartenenza a un gruppo, CURRENT_USER restituisce il nome dell'entità di Windows anziché il nome del gruppo.
Per informazioni su come restituire l'account di accesso dell'utente corrente, vedere SUSER_NAME (Transact-SQL) e SYSTEM_USER (Transact-SQL).
Esempi
R. Utilizzo di CURRENT_USER per restituire il nome dell'utente corrente
Questo esempio restituisce il nome dell'utente corrente.
SELECT CURRENT_USER;
GO
B. Utilizzo di CURRENT_USER come vincolo DEFAULT
Questo esempio crea una tabella che usa CURRENT_USER come vincolo DEFAULT per la colonna order_person di una riga di dati sulle vendite.
USE AdventureWorks2022;
GO
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'orders22')
DROP TABLE orders22;
GO
SET NOCOUNT ON;
CREATE TABLE orders22
(
order_id int IDENTITY(1000, 1) NOT NULL,
cust_id int NOT NULL,
order_date smalldatetime NOT NULL DEFAULT GETDATE(),
order_amt money NOT NULL,
order_person char(30) NOT NULL DEFAULT CURRENT_USER
);
GO
Questo esempio inserisce un record nella tabella. Queste istruzioni vengono eseguite dall'utente denominato Wanida.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95);
GO
SET NOCOUNT OFF;
GO
Questa query consente di selezionare tutte le informazioni della tabella orders22.
SELECT * FROM orders22;
GO
Il set di risultati è il seguente.
order_id cust_id order_date order_amt order_person
----------- ----------- -------------------- ------------ ------------
1000 5105 2005-04-03 23:34:00 577.95 Wanida
(1 row(s) affected)
C. Utilizzo di CURRENT_USER da un contesto rappresentato
In questo esempio l'utente Wanida esegue il codice Transact-SQL seguente per rappresentare l'utente 'Arnalfo'.
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Il set di risultati è il seguente.
Wanida
Arnalfo
Wanida
Vedi anche
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREA TABELLA (Transact-SQL)
Funzioni di sistema (Transact-SQL)