CURRENT_USER (Transact-SQL)

Devuelve el nombre de usuario actual. Esta función es equivalente a USER_NAME().

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

CURRENT_USER

Tipos de valor devueltos

sysname

Notas

CURRENT_USER devuelve el nombre del contexto de seguridad actual. Si CURRENT_USER se ejecuta después de una llamada a EXECUTE AS cambia el contexto, CURRENT_USER devolverá el nombre del contexto representado. Si una entidad de seguridad de Windows ha tenido acceso a la base de datos en forma de miembro de un grupo, se devolverá el nombre de la entidad de seguridad de Windows en vez del nombre del grupo.

Ejemplos

A. Utilizar CURRENT_USER para devolver el nombre del usuario actual

En el ejemplo siguiente se devuelve el nombre del usuario actual.

SELECT CURRENT_USER;
GO

B. Utilizar CURRENT_USER como una restricción DEFAULT

En el siguiente ejemplo se crea una tabla que usa CURRENT_USER como una restricción DEFAULT para la columna order_person en una fila de ventas.

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

El siguiente código inserta un registro en la tabla. El usuario que ejecuta estas instrucciones se denomina Wanida.

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

La siguiente consulta selecciona toda la información de la tabla orders22.

SELECT * FROM orders22;
GO

Éste es el conjunto de resultados.

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. Usar CURRENT_USER desde un contexto representado

En el siguiente ejemplo, el usuario Wanida ejecuta el siguiente código Transact-SQL.

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

Éste es el conjunto de resultados.

Wanida
Arnalfo
Wanida

Vea también

Referencia

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005