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 Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Microsoft Fabric'te
SQL analitiği uç noktasıMicrosoft Fabric'te
DepoMicrosoft Fabric'te SQL veritabanı
Bu fonksiyon, mevcut kullanıcının adını döndürür. Bu işlev ile USER_NAME()eşdeğerdir.
Transact-SQL söz dizimi kuralları
Sözdizimi
CURRENT_USER
Dönüş türleri
sysname
Açıklamalar
CURRENT_USER mevcut güvenlik bağlamının adını döndürür. Bağlam değiştirmek için yapılan çağrıdan CURRENT_USER sonra çalıştırılırsaEXECUTE AS, CURRENT_USER taklit edilen bağlamın adını döndürür. Bir Windows yöneticisi bir grup üyesi olarak veritabanına eriştiyse, CURRENT_USER grup adı yerine Windows yöneticisinin adını döndürür.
Mevcut kullanıcının girişini nasıl geri döndüreceğinizi öğrenmek için SUSER_NAME (Transact-SQL) ve SYSTEM_USER (Transact-SQL) bölümlerine bakınız.
Örnekler
A. Mevcut kullanıcı adını geri vermek için CURRENT_USER kullanmak
Bu örnek, mevcut kullanıcının adını döndürür.
SELECT CURRENT_USER;
GO
B. CURRENT_USER kısıtlama DEFAULT olarak kullanmak
Bu örnek, satış satırında sütun CURRENT_USER için kısıtlama olarak DEFAULTorder_person kullanılan bir tablo oluşturur.
USE AdventureWorks2022;
GO
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'orders22')
DROP TABLE orders22;
GO
SET NOCOUNT ON;
CREATE TABLE orders22
(
order_id int IDENTITY(1000, 1) NOT NULL,
cust_id int NOT NULL,
order_date smalldatetime NOT NULL DEFAULT GETDATE(),
order_amt money NOT NULL,
order_person char(30) NOT NULL DEFAULT CURRENT_USER
);
GO
Bu örnek, tabloya bir kayıt ekler. Adı Wanida geçen kullanıcı bu ifadeleri çalıştırır.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95);
GO
SET NOCOUNT OFF;
GO
Bu sorgu, tablodan orders22 tüm bilgileri seçer.
SELECT * FROM orders22;
GO
Sonuç kümesi aşağıdadır.
order_id cust_id order_date order_amt order_person
----------- ----------- -------------------- ------------ ------------
1000 5105 2005-04-03 23:34:00 577.95 Wanida
(1 row(s) affected)
C. Taklit edilmiş bir bağlamdan CURRENT_USER kullanmak
Bu örnekte, kullanıcı Wanida 'Arnalfo' adlı kullanıcı kimliğine girmek için aşağıdaki Transact-SQL kodunu çalıştırır.
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Sonuç kümesi aşağıdadır.
Wanida
Arnalfo
Wanida