CURRENT_USER (Transact-SQL)CURRENT_USER (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Esta función devuelve el nombre de usuario actual.This function returns the name of the current user. Esta función es equivalente a USER_NAME().This function is equivalent to USER_NAME().

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

CURRENT_USER  

Tipos de valores devueltosReturn types

sysnamesysname

NotasRemarks

CURRENT_USER devuelve el nombre del contexto de seguridad actual.CURRENT_USER returns the name of the current security context. Si CURRENT_USER se ejecuta después de una llamada a EXECUTE AS, cambia el contexto; CURRENT_USER devolverá el nombre del contexto suplantado.If CURRENT_USER executes after a call to EXECUTE AS switches context, CURRENT_USER will return the name of the impersonated context. Si una entidad de seguridad de Windows ha tenido acceso a la base de datos en forma de miembro de un grupo, CURRENT_USER devolverá el nombre de la entidad de seguridad de Windows en vez del nombre del grupo.If a Windows principal accessed the database by way of membership in a group, CURRENT_USER will return the name of the Windows principal instead of the group name.

Vea SUSER_NAME (Transact-SQL) y SYSTEM_USER (Transact-SQL) para obtener información sobre cómo devolver el inicio de sesión del usuario actual.See SUSER_NAME (Transact-SQL) and SYSTEM_USER (Transact-SQL) to learn about how to return the login of the current user.

EjemplosExamples

A.A. Usar CURRENT_USER para devolver el nombre del usuario actualUsing CURRENT_USER to return the current user name

En este siguiente se devuelve el nombre del usuario actual.This example returns the name of the current user.

SELECT CURRENT_USER;  
GO  

B.B. Usar CURRENT_USER como restricción DEFAULTUsing CURRENT_USER as a DEFAULT constraint

En este ejemplo se crea una tabla que usa CURRENT_USER como restricción DEFAULT para la columna order_person en una fila de ventas.This example creates a table that uses CURRENT_USER as a DEFAULT constraint, for the order_person column, on a sales row.

USE AdventureWorks2012;  
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  

Este ejemplo inserta un registro en la tabla.This example inserts a record in the table. El usuario denominado Wanida ejecuta estas instrucciones.The user named Wanida executes these statements.

INSERT orders22 (cust_id, order_amt)  
VALUES (5105, 577.95);  
GO  
SET NOCOUNT OFF;  
GO  

Esta consulta selecciona toda la información de la tabla orders22.This query selects all information from the orders22 table.

SELECT * FROM orders22;  
GO  

El conjunto de resultados es el siguiente.Here is the result set.

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.C. Usar CURRENT_USER desde un contexto suplantadoUsing CURRENT_USER from an impersonated context

En este ejemplo, el usuario Wanida ejecuta el siguiente código Transact-SQLTransact-SQL para suplantar al usuario "Arnalfo".In this example, user Wanida executes the following Transact-SQLTransact-SQL code to impersonate user 'Arnalfo'.

SELECT CURRENT_USER;  
GO  
EXECUTE AS USER = 'Arnalfo';  
GO  
SELECT CURRENT_USER;  
GO  
REVERT;  
GO  
SELECT CURRENT_USER;  
GO  

El conjunto de resultados es el siguiente.Here is the result set.

Wanida
Arnalfo
Wanida

Vea tambiénSee also

USER_NAME (Transact-SQL)USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)sys.database_principals (Transact-SQL)
ALTER TABLE (Transact-SQL)ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)CREATE TABLE (Transact-SQL)
Funciones del sistema (Transact-SQL)System Functions (Transact-SQL)