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 Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
SESSION_USER, mevcut veritabanındaki mevcut bağlamın kullanıcı adını döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
SESSION_USER
Dönüş Türleri
nvarchar(128)
Açıklamalar
CREATE TABLE veya ALTER TABLE ifadelerinde DEFAULT kısıtlamaları olan SESSION_USER kullanın veya herhangi bir standart fonksiyon olarak kullanın. SESSION_USER varsayılan değer belirtilmediğinde tabloya eklenebilir. Bu işlev bağımsız değişken almaz. SESSION_USER sorgularda kullanılabilir.
Eğer SESSION_USER bağlam değişiminden sonra çağrılırsa, SESSION_USER taklit edilen bağlamın kullanıcı adını döndürür.
Örnekler
A. Mevcut oturumun kullanıcı adını iade etmek için SESSION_USER kullanmak
Aşağıdaki örnek, bir değişkeni şu şekilde ncharilan eder, o değişkene mevcut değer SESSION_USER atar ve ardından değişkeni metin açıklamasıyla yazdırır.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Bu, oturum kullanıcısı şu durumlarda Suryasonuç kümesidir:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. DEFAULT kısıtlamalarla SESSION_USER kullanımı
Aşağıdaki örnek, bir gönderiyi kaydeden kişinin ismini kısıtlama olarak kullanan bir tablo SESSION_USERDEFAULT oluşturur.
USE AdventureWorks2022;
GO
CREATE TABLE deliveries3
(
order_id INT IDENTITY(5000, 1) NOT NULL,
cust_id INT NOT NULL,
order_date SMALLDATETIME NOT NULL DEFAULT GETDATE(),
delivery_date SMALLDATETIME NOT NULL DEFAULT
DATEADD(dd, 10, GETDATE()),
received_shipment NCHAR(30) NOT NULL DEFAULT SESSION_USER
);
GO
Tabloya eklenen kayıtlar, mevcut kullanıcının kullanıcı adıyla damgalanır. Bu örnekte, Wanida, Sylvester, ve Alejandro sevkiyatların alındığını doğrulayın. Bu, kullanıcı bağlamını değiştirerek EXECUTE AS.
EXECUTE AS USER = 'Wanida'
INSERT deliveries3 (cust_id)
VALUES (7510);
INSERT deliveries3 (cust_id)
VALUES (7231);
REVERT;
EXECUTE AS USER = 'Sylvester'
INSERT deliveries3 (cust_id)
VALUES (7028);
REVERT;
EXECUTE AS USER = 'Alejandro'
INSERT deliveries3 (cust_id)
VALUES (7392);
INSERT deliveries3 (cust_id)
VALUES (7452);
REVERT;
GO
Aşağıdaki sorgu, tablodan deliveries3 tüm bilgileri seçer.
SELECT order_id AS 'Order #', cust_id AS 'Customer #',
delivery_date AS 'When Delivered', received_shipment
AS 'Received By'
FROM deliveries3
ORDER BY order_id;
GO
Sonuç kümesi aşağıdadır.
Order # Customer # When Delivered Received By
-------- ---------- ------------------- -----------
5000 7510 2005-03-16 12:02:14 Wanida
5001 7231 2005-03-16 12:02:14 Wanida
5002 7028 2005-03-16 12:02:14 Sylvester
5003 7392 2005-03-16 12:02:14 Alejandro
5004 7452 2005-03-16 12:02:14 Alejandro
(5 row(s) affected)
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
C: Mevcut oturumun kullanıcı adını döndürmek için SESSION_USER kullanmak
Aşağıdaki örnek, mevcut oturum için oturum kullanıcısını döndürür.
SELECT SESSION_USER;
Ayrıca Bkz.
ALTER TABLE (Transact-SQL)
TABLO OLUŞTUR (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
Sistem İşlevleri (Transact-SQL)
KULLANICI (Transact-SQL)
USER_NAME (Transact-SQL)