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
Analytics Platform Sistemi (PDW)
Microsoft Fabric'te SQL Veritabanı
Mevcut kullanıcının belirtilen Microsoft Windows grubu, Microsoft Entra grubu veya SQL Server veritabanı rolünün üyesi olup olmadığını gösterir.
IS_MEMBER fonksiyonu Microsoft Entra grupları için desteklenmektedir. IS_MEMBER çalışmadığı tek durum, grubun SQL örneği için Microsoft Entra yöneticisi olmasıdır.
Transact-SQL söz dizimi kuralları
Uyarı
Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Sözdizimi
IS_MEMBER ( { 'group' | 'role' } )
Arguments
'grup'
Geçerlidir: SQL Server 2008 (10.0.x) ve sonrası sürümler
Kontrol edilen Windows veya Microsoft Entra grubunun adı. Bir Windows grubu, Domain\Group formatında olmalıdır. grupsysname'dir.
'Rol'
Kontrol edilen SQL Server rolünün adı.
rolsysname'dir ve veritabanı sabit rolleri veya kullanıcı tanımlı rolleri içerebilir, ancak sunucu rollerini içeremez.
Dönüş Türleri
int
Açıklamalar
IS_MEMBER aşağıdaki değerleri döndürür.
| Dönüş değeri | Description |
|---|---|
| 0 | Mevcut kullanıcı grup veya rol üyesi değildir. |
| 1 | Mevcut kullanıcı, bir grup veya rol üyesidir. |
| null | Ne grup ne de rol geçerli değil. SQL Server girişi veya uygulama rolü kullanılarak yapılan giriş sorgusu yapıldığında, Windows grubu için NULL döner. |
IS_MEMBER, Windows tarafından oluşturulan bir erişim tokenını inceleyerek Windows grup üyeliğini belirler. Erişim tokenı, bir kullanıcı SQL Server örneğine bağlandıktan sonra grup üyeliğinde yapılan değişiklikleri yansıtmaz. Windows grup üyeliği, SQL Server girişi veya SQL Server uygulama rolü tarafından sorgulanamaz.
Bir veritabanı rolüne üye eklemek ve kaldırmak için ALTER ROLE (Transact-SQL) kullanın. Sunucu rolüne üye eklemek ve kaldırmak için ALTER SERVER ROLE (Transact-SQL) kullanabilirsiniz.
Bu fonksiyon, temel izni değil, rol üyeliğini değerlendirir. Örneğin, db_owner sabit veritabanı rolü CONTROL DATABASE iznine sahiptir. Kullanıcı CONTROL DATABASE iznine sahipse ama rol üyesi değilse, bu fonksiyon kullanıcının aynı izinlere sahip olmasına rağmen db_owner rolünün üyesi olmadığını doğru şekilde bildirir.
Sysadmin sabit sunucu rolünün üyeleri, her veritabanına dbo kullanıcısı olarak girer. Sistem yöneticisi üyesi için izinleri kontrol ediyorum, sabit sunucu rolünde, orijinal girişin değil, dbo için izinleri kontrol ediyor. dbo veritabanı rolüne eklenemeyeceği ve Windows gruplarında olmadığı için, dbo her zaman 0 (veya rol yoksa NULL) döndürür.
İlgili Fonksiyonlar
Başka bir SQL Server girişinin veritabanı rolünün üyesi olup olmadığını belirlemek için IS_ROLEMEMBER (Transact-SQL) kullanın. SQL Server girişinin sunucu rolünün üyesi olup olmadığını belirlemek için IS_SRVROLEMEMBER (Transact-SQL) kullanın.
Örnekler
Aşağıdaki örnek, mevcut kullanıcının bir veritabanı rolünün üyesi mi yoksa Windows alan grubu üyesi mi olduğunu kontrol eder.
-- Test membership in db_owner and print appropriate message.
IF IS_MEMBER ('db_owner') = 1
PRINT 'Current user is a member of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') = 0
PRINT 'Current user is NOT a member of the db_owner role'
ELSE IF IS_MEMBER ('db_owner') IS NULL
PRINT 'ERROR: Invalid group / role specified';
GO
-- Execute SELECT if user is a member of ADVWORKS\Shipping.
IF IS_MEMBER ('ADVWORKS\Shipping') = 1
SELECT 'User ' + USER + ' is a member of ADVWORKS\Shipping.';
GO
Ayrıca Bkz.
IS_SRVROLEMEMBER (Transact-SQL)
Sorumluları (Veritabanı Altyapısı)
Güvenlik Kataloğu Görünümleri (Transact-SQL)
Güvenlik İşlevleri (Transact-SQL)