Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Analítica (PDW)
Base de datos SQL en Microsoft Fabric
Esta función devuelve el nombre de usuario actual. Esta función es equivalente a USER_NAME().
Convenciones de sintaxis de Transact-SQL
Sintaxis
CURRENT_USER
Tipos de valores devueltos
sysname
Observaciones
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 suplantado. 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.
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.
Ejemplos
A. Usar CURRENT_USER para devolver el nombre del usuario actual
En este siguiente se devuelve el nombre del usuario actual.
SELECT CURRENT_USER;
GO
B. Usar CURRENT_USER como restricción DEFAULT
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.
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
Este ejemplo inserta un registro en la tabla. El usuario denominado Wanida ejecuta estas instrucciones.
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.
SELECT * FROM orders22;
GO
Este 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 suplantado
En este ejemplo, el usuario Wanida ejecuta el siguiente código Transact-SQL para suplantar al usuario "Arnalfo".
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Este es el conjunto de resultados.
Wanida
Arnalfo
Wanida
Consulte también
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
MODIFICAR TABLA (Transact-SQL)
CREAR TABLA (Transact-SQL)
Funciones del sistema (Transact-SQL)