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
Microsoft Fabric'te SQL veritabanı
Belirtilen oturum açma adı için güvenlik kimlik numarasını (SID) döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
SUSER_SID ( [ 'login' ] [ , Param2 ] )
Arguments
'* oturum açma *'
Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümleri
Kullanıcının oturum açma adı.
loginis sysname.
oturum açma, isteğe bağlı bir SQL Server oturum açma veya Microsoft Windows kullanıcısı veya grubu olabilir.
Oturum açma belirtilmezse, geçerli güvenlik bağlamı hakkındaki bilgiler döndürülür. parametresi içeriyorsa NULL, SUSER_SID döndürür NULL.
Param2
Şunlar için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Oturum açma adının doğrulanıp doğrulanmayacağını belirtir. Param2int türündedir ve isteğe bağlıdır. Param2 0 olduğunda, oturum açma adı doğrulanmaz. Param2 0 olarak belirtilmediğinde, Windows oturum açma adının SQL Server'da depolanan oturum açma adıyla tam olarak aynı olduğu doğrulanır.
Dönüş türleri
varbinary(85)
Açıklamalar
SUSER_SIDveya DEFAULTiçinde ALTER TABLE kısıtlama CREATE TABLE olarak kullanılabilir.
SUSER_SID seçme listesinde, yan tümcesinde WHERE ve bir ifadeye izin verilen her yerde kullanılabilir.
SUSER_SID parametre belirtilmemiş olsa bile her zaman parantez içinde olmalıdır.
Bağımsız değişken olmadan çağrıldığında, SUSER_SID geçerli güvenlik bağlamının SID'sini döndürür. kullanarak EXECUTE ASbağlamı değiştirmiş bir toplu iş içinde bağımsız değişken olmadan çağrıldığında, SUSER_SID kimliğine bürünülen bağlamın SID'sini döndürür. Kimliğine bürünülen bir bağlamdan çağrıldığında, SUSER_SID(ORIGINAL_LOGIN()) özgün bağlamın SID'sini döndürür.
SQL Server harmanlaması ve Windows harmanlaması farklı olduğunda, SUSER_SID SQL Server ve Windows oturum açma bilgilerini farklı bir biçimde depoladığında başarısız olabilir. Örneğin, Windows bilgisayarda TestComputer oturum açma bilgisi User varsa ve SQL Server oturum açma bilgilerini olarak TESTCOMPUTER\Userdepolarsa, oturum açma TestComputer\User araması oturum açma adını doğru çözemeyebilir. Oturum açma adının bu doğrulamasını atlamak için Param2'yi kullanın. Farklı harmanlamalar genellikle SQL Server 15401 hatasının bir nedenidir: Windows NT user or group '%s' not found. Check the name again.
Dokuda Azure SQL Veritabanı, SQL veritabanı için açıklamalar
SUSER_SID her zaman geçerli güvenlik bağlamı için oturum açma SID'sini döndürür. Farklı bir oturum açmanın SID'sini almak için sys.database_principals kullanın.
deyimi SUSER_SID , aracılığıyla EXECUTE ASkimliğine bürünülen bir güvenlik bağlamı kullanılarak yürütülmesini desteklemez.
Örnekler
A. SUSER_SID kullanma
Aşağıdaki örnek, geçerli güvenlik bağlamı için güvenlik kimlik numarasını (SID) döndürür.
SELECT SUSER_SID();
B. Belirli bir oturum açma ile SUSER_SID kullanma
Şunlar için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Aşağıdaki örnek, SQL Server sa oturum açma bilgileri için güvenlik kimlik numarasını döndürür.
SELECT SUSER_SID('sa');
GO
C. windows kullanıcı adıyla SUSER_SID kullanma
Şunlar için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Aşağıdaki örnek, Windows kullanıcısı London\Workstation1için güvenlik kimlik numarasını döndürür.
SELECT SUSER_SID('London\Workstation1');
GO
D. default kısıtlaması olarak SUSER_SID kullanma
Aşağıdaki örnek, deyiminde SUSER_SID kısıtlama DEFAULT olarak kullanırCREATE TABLE.
USE AdventureWorks2022;
GO
CREATE TABLE sid_example
(
login_sid VARBINARY(85) DEFAULT SUSER_SID(),
login_name VARCHAR(30) DEFAULT SYSTEM_USER,
login_dept VARCHAR(10) DEFAULT 'SALES',
login_date DATETIME DEFAULT GETDATE()
);
GO
INSERT sid_example DEFAULT VALUES;
GO
E. Windows oturum açma adını SQL Server'da depolanan oturum açma adıyla karşılaştırın
Şunlar için geçerlidir: SQL Server 2012 (11.x) ve sonraki sürümler
Aşağıdaki örnekte, Windows'tan SID'yi almak için Param2'nin nasıl kullanılacağı ve bu SID'nin işleve giriş olarak nasıl kullanılacağı gösterilmektedir SUSER_SNAME . Örnek, oturum açma bilgilerini Windows()TestComputer\User içinde depolandığı biçimde sağlar ve oturum açma bilgilerini SQL Server'da (TESTCOMPUTER\User) depolandığı biçimde döndürür.
SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));