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