Aracılığıyla paylaş


SESSION_USER (Transact-SQL)

SESSION_USER, geçerli veritabanında etkin içerik kullanıcı adını döndürür.

Topic link iconTransact-SQL sözdizimi kuralları

SESSION_USER

Dönüş Türleri

nvarchar(128)

Remarks

Tüm standart işlev kullanmak veya ALTER tablo veya CREATE tablo deyimleri, VARSAYıLAN kısıtlamalar ile SESSION_USER kullanın.SESSION_USER içine eklenen bir tablo ne zaman, varsayılan değeri belirtildi.Bu işlev, bağımsız değişken alıyor.SESSION_USER sorgularda kullanılabilir.

SESSION_USER sonra bir bağlam değiştirme olarak adlandırılır, SESSION_USER bağlamı Kimliğine bürünülen kullanıcı adını döndürür.

Örnekler

C.Geçerli oturum kullanıcı adını döndürmek için SESSION_USER kullanma

Aþaðýdaki örnek, bir değişken olarak bildirir. nchar, geçerli değerini atar. SESSION_USER Bu bir deðiþkene ve sonra da bir metin açıklaması değişkenle yazdırır.

DECLARE @session_usr nchar(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO

Bu olduğunda, kullanıcı oturum sonucudur Surya:

-------------------------------------------------------------- 
This session's current user is: Surya                            

(1 row(s) affected)

b.DEFAULT kısıtlamalarıyla SESSION_USER kullanma

Aşağıdaki örnek, kullanan bir tablo oluşturur. SESSION_USER gibi bir DEFAULT kısıtlama için bir sevk irsaliyesi, alış irsaliyesi kaydeden kişinin adı.

USE AdventureWorks
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 geçerli kullanıcının kullanıcı adı ile damgalı.Bu örnekte, Wanida, Sylvester, ve Alejandro Alış irsaliyesi, sevk irsaliyelerini doğrulayın. Bu kullanıcı bağlamı kullanarak geçiş yaparak Öykünülen 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

Tüm bilgileri aşağıdaki sorgu seçer deliveries3 Tablo.

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

Here is the result set.

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)