SYSTEM_USER (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)

Varsayılan değer belirtilmediğinde mevcut giriş için sistem tarafından sağlanan bir değerin tabloya eklenmesine izin verir.

Transact-SQL söz dizimi kuralları

Syntax

SYSTEM_USER  

Dönüş Türleri

nvarchar(128)

Remarks

SYSTEM_USER fonksiyonunu ve DEFAULT ifadelerinde CREATE TABLEALTER TABLE kısıtlamalarla kullanabilirsiniz. Ayrıca herhangi bir standart fonksiyon olarak da kullanabilirsiniz.

Kullanıcı adı ve giriş adı farklıysa, SYSTEM_USER giriş adını döndürür.

Mevcut kullanıcı Windows Kimlik Doğrulama kullanarak SQL Server'ye giriş yaptıysa, SYSTEM_USER Windows giriş kimliği adını şu şekilde geri döner: DOMAIN\user_login_name. Ancak, mevcut kullanıcı SQL Server Kimlik Doğrulama kullanarak SQL Server'ye giriş yaptıysa, SYSTEM_USER SQL Server giriş kimliği adını döndürür, örneğin WillisJo kullanıcı için .WillisJo

SYSTEM_USER şu anda yürüten bağlamın adını döndürür. Eğer ifade EXECUTE AS bağlam değiştirmek için kullanıldıysa, SYSTEM_USER taklit edilen bağlamın adını döndürür.

Bir SYSTEM_USER olamazsın EXECUTE AS .

Azure SQL Veritabanı: SYSTEM_USER ifadesi, taklit edilmiş bir güvenlik bağlamı kullanılarak yürütmeyi desteklemezEXECUTE AS.

Examples

A. Mevcut sistem kullanıcı adını döndürmek için SYSTEM_USER kullanmak

Aşağıdaki örnek bir char değişken ilan eder, değişkende mevcut değeri SYSTEM_USER saklar ve ardından değişkende saklanan değeri yazdırır.

DECLARE @sys_usr CHAR(30);  
SET @sys_usr = SYSTEM_USER;  
SELECT 'The current system user is: '+ @sys_usr;  
GO  

Sonuç kümesi aşağıdadır.

----------------------------------------------------------
The current system user is: WillisJo

(1 row(s) affected)

B. Kısıtlamalarla DEFAULT SYSTEM_USER kullanımı

Aşağıdaki örnek, sütun için bir kısıtlama SRep_tracking_user olarak bir tablo oluşturur.SYSTEM_USERDEFAULT

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  

Aşağıdaki sorgu, tablodan tüm bilgileri Sales_Tracking seçer:

SELECT * FROM Sales_Tracking ORDER BY Rep_id;  
GO  

Sonuç kümesi aşağıdadır.

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)

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

C. Mevcut sistem kullanıcı adını döndürmek için SYSTEM_USER kullanmak

Aşağıdaki örnek, mevcut değeri döndürür SYSTEM_USER.

SELECT SYSTEM_USER;  

Ayrıca Bkz.

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Sistem İşlevleri (Transact-SQL)
USER (Transact-SQL)