Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL ServerAzure
SQL Managed InstanceAzure
Synapse AnalyticsSQL
analytics endpoint in Microsoft FabricWarehouse
in Microsoft Fabric
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 SYSTEM_USER olarak bir tablo oluşturur.DEFAULTSRep_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
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
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;