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ı
SQL Server girişinin belirlenen sunucu rolünün üyesi olup olmadığını gösterir.
Transact-SQL söz dizimi kuralları
Sözdizimi
IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )
Arguments
'Rol'
Kontrol edilen sunucu rolünün adı.
RolSysname.
Rol için geçerli değerler kullanıcı tanımlı sunucu rolleri ve aşağıdaki sabit sunucu rolleridir:
- sistem yöneticisi
- serveradmin
- dbcreator
- setupadmin
- bulkadmin
- securityadmin
- diskadmin
- kamu
- processadmin
'Girişyapıyor'
Kontrol edilecek SQL Server giriş girişinin adı nedir.
girişsysname'dir, varsayılan olarak NULL. Eğer herhangi bir değer belirtilmemişse, sonuç mevcut Yürütme bağlamına dayanır. Parametre NULL kelimesini içeriyorsa, NULL döner.
Uyarı
Microsoft Entra girişleri Azure SQL Database ve Azure Synapse için halka açık önizlemede olsa da, giriş için Microsoft Entra principal kullanımı desteklenmez.
Dönüş Türleri
int
| Dönüş değeri | Description |
|---|---|
| 0 |
Giriş Role üyesi değildir. Azure SQL Database'de bu ifade her zaman 0 döndürür. |
| 1 | Login , role üyesidir. |
| null | Rol veya giriş geçerli değil ya da rol üyeliğini görüntüleme izniniz yok. |
Açıklamalar
IS_SRVROLEMEMBER kullanılarak mevcut kullanıcının sunucu rolünün izinlerini gerektiren bir eylemi gerçekleştirip gerçekleştiremeyeceğini belirleyin.
Eğer Contoso\Mary5 gibi bir Windows girişi giriş için belirtilmişse, IS_SRVROLEMEMBER giriş SQL Server'a doğrudan erişim verilmedi veya reddedildikçe NULL döner.
Eğer isteğe bağlı giriş parametresi sağlanmıyorsa ve giriş Windows alan girişi ise , Windows grubuna üyelik yoluyla sabit bir sunucu rolünün üyesi olabilir. Bu dolaylı üyelikleri çözmek için IS_SRVROLEMEMBER, alan kontrolcüsünden Windows grup üyelik bilgisi ister. Alan kontrolcüsü erişilemezse veya yanıt vermezse, IS_SRVROLEMEMBER sadece kullanıcı ve yerel gruplarını hesaba katarak rol üyeliği bilgilerini döndürür. Belirtilen kullanıcı mevcut kullanıcı değilse, IS_SRVROLEMEMBER tarafından döndürülen değer, doğrulama cihazının (örneğin Active Directory) SQL Server'a son veri güncellemesinden farklı olabilir.
Isteğe bağlı giriş parametresi sağlanıyorsa, sorgulanan Windows girişi sys.server_principals'de bulunmalıdır, aksi takdirde IS_SRVROLEMEMBER NULL döndürür. Bu, girişin geçerli olmadığını gösterir.
Giriş parametresi bir alan girişi veya Windows grubuna bağlı olduğunda ve alan kontrolcüsü erişilmezse, IS_SRVROLEMEMBER çağrıları başarısız olur ve yanlış veya eksik veri döndürebilir.
Alan kontrolcüsü mevcut değilse, IS_SRVROLEMEMBER çağrısı, Windows yöneticisi yerel olarak kimlik doğrulaması yapılabildiğinde, örneğin yerel bir Windows hesabı veya SQL Server girişi gibi doğru bilgileri verir.
IS_SRVROLEMEMBER bir Windows grubu giriş argümanı olarak kullanıldığında her zaman 0 döner; bu Windows grubu ise başka bir Windows grubunun üyesidir, bu da belirtilen sunucu rolünün bir üyesidir.
Kullanıcı Hesabı Kontrolü (UAC) ayarı da dönerin farklı sonuçlarına neden olabilir. Bu, kullanıcının sunucuya Windows grubu üyesi olarak mı yoksa belirli bir SQL Server kullanıcısı olarak mı eriştiğine bağlıdır.
Bu fonksiyon, temel izni değil, rol üyeliğini değerlendirir. Örneğin, sysadmin sabit sunucu rolü CONTROL SERVER iznine sahiptir. Kullanıcı CONTROL SERVER iznine sahipse ancak rolün üyesi değilse, bu fonksiyon kullanıcının aynı izinlere sahip olmasına rağmen sistem yöneticisi rolünün üyesi olmadığını doğru şekilde bildirir.
İlgili Fonksiyonlar
Mevcut kullanıcının belirtilen Windows grubu, Microsoft Entra grubu veya SQL Server veritabanı rolünün üyesi olup olmadığını belirlemek için IS_MEMBER (Transact-SQL) kullanın. SQL Server girişinin veritabanı rolünün üyesi olup olmadığını belirlemek için IS_ROLEMEMBER (Transact-SQL) kullanın.
Permissions
Sunucu rolünde VIEW DEFINITION izni gerektirir.
Örnekler
Aşağıdaki örnek, mevcut kullanıcının SQL Server girişinin sabit sunucu rolünün üyesi sysadmin olup olmadığını gösterir.
IF IS_SRVROLEMEMBER ('sysadmin') = 1
print 'Current user''s login is a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') = 0
print 'Current user''s login is NOT a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') IS NULL
print 'ERROR: The server role specified is not valid.';
Aşağıdaki örnek, alan girişi Pat'ın diskadmin sabit sunucu rolünün üyesi olup olmadığını gösterir.
SELECT IS_SRVROLEMEMBER('diskadmin', 'Contoso\Pat');