SESSION_USER'ı (Transact-SQL)
SESSION_USER'ı, geçerli veritabanında geçerli kullanıcı adını döndürür.
Sözdizimi
SESSION_USER
Dönüş Türleri
nvarchar(128)
Açıklamalar
SESSION_USER'ı varsayılan kısıtlamaları create table veya alter table deyimi içinde olan veya herhangi bir standart işlevkullanın.Varsayýlan bir deðer belirtilmediðinde SESSION_USER'ı tablo eklenebilir.Bu işlev bağımsız değişken alır.SESSION_USER'ı sorgularda kullanılabilir.
SESSION_USER'ı bağlam değiştirmesonra çağrılırsa, SESSION_USER'ı bağlamı kimliğine bürünülen kullanıcı adını döndürür.
Örnekler
A.Geçerli oturumkullanı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ğeri atar SESSION_USER Bu değişken için bir metin açıklaması. değişkenle yazdırır ve
DECLARE @session_usr nchar(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
oturum kullanıcı olduğunda sonuç kümesi budur Surya:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B.SESSION_USER'ı varsayılan kısıtlamaları ile kullanma
Aşağıdaki örnek, kullanan bir tablo oluşturur SESSION_USER olarak bir DEFAULT alındığını kaydeden kişinin adını kısıtlamasısevkiyat.
USE AdventureWorks2008R2;
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
tablo eklenen kayıtlar geçerli kullanıcının kullanıcı adını damgalı.Bu örnekte, Wanida, Sylvester, ve Alejandro doğrulamak alış irsaliyesi, sevk irsaliyesi.Bu kullanıcı bağlamı kullanarak geçiş yaparak mevcut olabilir 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
Sonuç kümesi buradadı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)