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
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Belirli bir tanımlama numarasından veya mevcut kullanıcı adından veritabanı kullanıcı adını döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
USER_NAME ( [ ID ] )
Arguments
ID
Veritabanı kullanıcısıyla ilişkilendirilen kimlik numarası, sys.database_principals'de listelenmiştir. IDint. Parantez şarttır.
Dönüş türleri
nvarchar(128)
Açıklamalar
ID atıldığında, mevcut bağlamdaki mevcut kullanıcı varsayılır. Parametre şu kelimeyi NULLiçeriyorsa, USER_NAME , döndürecektir NULL.
USER_NAME Bir EXECUTE ASifade belirtilmeden çağrıldığında, USER_NAME taklit edilen kullanıcının adını döndürür. Bir Windows yöneticisi bir grup üyeliği yoluyla veritabanına erişirse, USER_NAME grup yerine Windows yöneticisinin adını döndürür.
Bu USER_NAME() fonksiyon Azure SQL Veritabanı'nda desteklense de, Azure SQL Veritabanı üzerinde kullanılmak EXECUTE AS USER = USER_NAME(n) desteklenmez.
Örnekler
A. Kullanıcı kimliğini tanımlamak için USER_NAME() kullanın
Aşağıdaki örnek, sys.database_principals'de listelendiği gibi kullanıcı kimliği 13için kullanıcı adını döndürür.
SELECT USER_NAME(13);
GO
B. Kimliksiz USER_NAME kullanın
Aşağıdaki örnek, bir kimlik belirtilmeden mevcut kullanıcının adını bulur.
SELECT USER_NAME();
GO
İşte sistem yöneticisi sabit sunucu rolünde çalışan bir kullanıcı için sonuç seti burada.
dbo
C. WHERE maddesinde USER_NAME kullanın
Aşağıdaki örnek, adın sistem fonksiyonunun USER_NAME kullanıcı tanımlama numarasına 1uygulanmasının sonucuna eşit olduğu satır olarak sys.database_principals.
SELECT name FROM sys.database_principals WHERE name = USER_NAME(1);
GO
Sonuç kümesi aşağıdadır.
name
------------------------------
dbo
(1 row(s) affected)
D. EXECUTE AS ile taklit sırasında USER_NAME arayın
Aşağıdaki örnek, taklit sırasında nasıl USER_NAME davrandığını göstermektedir.
EXECUTE AS Şu anda Microsoft Fabric'te desteklenmemektedir.
Dikkat
Test yaparken EXECUTE ASher zaman takip edilmesi gereken a REVERT betiği yaz.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Sonuç kümesi aşağıdadır.
-------------
dbo
-------------
Zelig
-------------
dbo
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
E. Kimliksiz USER_NAME kullanın
Aşağıdaki örnek, bir kimlik belirtilmeden mevcut kullanıcının adını bulur.
SELECT USER_NAME();
İşte şu anda giriş yapmış bir kullanıcı için sonuç seti.
User7
F. WHERE maddesinde USER_NAME kullanın
Aşağıdaki örnek, sistem fonksiyonunun USER_NAME kullanıcı tanımlama numarasına 1uygulanmasının sonucuna eşit olan adın olduğu satırı bulursysusers.
SELECT name FROM sysusers WHERE name = USER_NAME(1);
Sonuç kümesi aşağıdadır.
name
------------------------------
User7