Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server
Управляемый экземпляр SQL Azure
Azure Synapse Analytics Analytics
Platform System (PDW)
Позволяет вставить в таблицу значение текущего имени входа, назначенного системой, если не задано значение по умолчанию.
Соглашения о синтаксисе Transact-SQL
Синтаксис
SYSTEM_USER
Типы возвращаемых данных
nvarchar(128)
Замечания
Функцию SYSTEM_USER можно использовать с ограничениями DEFAULT в инструкциях CREATE TABLE и ALTER TABLE. Она также может использоваться как стандартная функция.
Если имя пользователя и имя входа различаются, функция SYSTEM_USER возвращает имя входа.
Если текущий пользователь вошел в SQL Server с помощью проверки подлинности Windows, SYSTEM_USER возвращает имя идентификации входа Windows в форме: домен\user_login_name. Однако если текущий пользователь вошел в SQL Server с помощью проверки подлинности SQL Server, SYSTEM_USER возвращает имя идентификации входа SQL Server, например WillisJo для пользователя, вошедшего в систему.WillisJo
Функция SYSTEM_USER возвращает имя текущего выполняемого контекста. Если контекст был переключен с помощью инструкции EXECUTE AS, функция SYSTEM_USER возвращает имя олицетворяемого контекста.
Использовать EXECUTE AS от имени SYSTEM_USER невозможно.
База данных SQL Azure. Оператор SYSTEM_USER не поддерживает выполнение с использованием олицетворенного контекста безопасности через EXECUTE AS.
Примеры
А. Использование функции SYSTEM_USER для получения текущего системного имени пользователя
В следующем примере объявляется переменная char, в которой сохраняется текущее значение SYSTEM_USER, а затем значение этой переменной выводится на печать.
DECLARE @sys_usr CHAR(30);
SET @sys_usr = SYSTEM_USER;
SELECT 'The current system user is: '+ @sys_usr;
GO
Вот результирующий набор.
----------------------------------------------------------
The current system user is: WillisJo
(1 row(s) affected)
B. Использование функции SYSTEM_USER с ограничениями DEFAULT
В следующем примере создается таблица с функцией SYSTEM_USER в качестве ограничения DEFAULT для столбца SRep_tracking_user.
USE AdventureWorks2022;
GO
CREATE TABLE Sales.Sales_Tracking
(
Territory_id INT IDENTITY(2000, 1) NOT NULL,
Rep_id INT NOT NULL,
Last_sale DATETIME NOT NULL DEFAULT GETDATE(),
SRep_tracking_user VARCHAR(30) NOT NULL DEFAULT SYSTEM_USER
);
GO
INSERT Sales.Sales_Tracking (Rep_id)
VALUES (151);
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)
VALUES (293, '19980515');
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)
VALUES (27882, '19980620');
INSERT Sales.Sales_Tracking (Rep_id)
VALUES (21392);
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)
VALUES (24283, '19981130');
GO
Следующий запрос позволяет выбрать все данные из таблицы Sales_Tracking:
SELECT * FROM Sales_Tracking ORDER BY Rep_id;
GO
Вот результирующий набор.
Territory_id Rep_id Last_sale SRep_tracking_user
----------- ------ -------------------- ------------------
2000 151 Mar 4 1998 10:36AM ArvinDak
2001 293 May 15 1998 12:00AM ArvinDak
2003 21392 Mar 4 1998 10:36AM ArvinDak
2004 24283 Nov 3 1998 12:00AM ArvinDak
2002 27882 Jun 20 1998 12:00AM ArvinDak
(5 row(s) affected)
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
В. Использование функции SYSTEM_USER для получения текущего системного имени пользователя
В приведенном ниже примере возвращается текущее значение SYSTEM_USER.
SELECT SYSTEM_USER;
См. также
Инструкция ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Системные функции (Transact-SQL)
USER (Transact-SQL)