Condividi tramite


CURRENT_USER (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)

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)
CREATE TABLE (Transact-SQL)
Funzioni di sistema (Transact-SQL)