Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server Управляемый экземпляр SQL Azure
Azure Synapse Analytics Analytics
Platform System (PDW)
Позволяет вставить в таблицу значение текущего имени входа, назначенного системой, если не задано значение по умолчанию.
Соглашения о синтаксисе Transact-SQL
Синтаксис
SYSTEM_USER
Типы возвращаемых данных
nvarchar(128)
Замечания
Вы можете использовать функцию SYSTEM_USER с DEFAULT ограничениями в CREATE TABLE операторах and 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)