Udostępnij za pośrednictwem


CURRENT_USER (Transact-SQL)

Zwraca nazwę bieżącego użytkownika.Ta funkcja jest równoznaczne z USER_NAME().

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

CURRENT_USER

Zwracane typy

sysname

Uwagi

CURRENT_USER zwraca nazwę bieżącego kontekstu zabezpieczeń.Jeśli CURRENT_USER jest uruchamiane po wywołaniu jako wykonywanie przełącza kontekst, CURRENT_USER zwróci nazwę kontekście personifikowanego.Jeśli Windows głównych dostęp do bazy danych z członkostwa w grupie, zamiast nazwy grupy zostaną zwrócone nazwy głównej systemu Windows.

Aby przywrócić logowania bieżącego użytkownika, zobacz SUSER_NAME (Transact-SQL) i SYSTEM_USER (Transact-SQL).

Przykłady

A.Zwraca nazwę bieżącego użytkownika przy użyciu CURRENT_USER

Poniższy przykład zwraca nazwę bieżącego użytkownika.

SELECT CURRENT_USER;
GO

B.Używając CURRENT_USER jako domyślne ograniczenie

Poniższy przykład tworzy tabela , która korzysta z CURRENT_USER jako DEFAULT ograniczenie dla order_person kolumna w wierszu sprzedaży.

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

Poniższy kod powoduje wstawienie rekordu w tabela.O nazwie użytkownika, który wykonuje instrukcje te Wanida.

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

Następująca kwerenda wybiera wszystkie informacje z orders22 tabela.

SELECT * FROM orders22;
GO

Oto zestaw wyników.

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.Korzystanie z kontekście personifikowanego CURRENT_USER

W poniższym przykładzie użytkownik Wanida wykonuje następujące Transact-SQL kodu.

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

Oto zestaw wyników.

Wanida

Arnalfo

Wanida