Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Jelzi, hogy egy meghatározott adatbázis-alap tag-e a megadott adatbázis szerepnek.
Transact-SQL szintaxis konvenciók
Megjegyzés:
A Microsoft Entra ID-t korábban Azure Active Directorynak (Azure AD) nevezték.
Szemantika
IS_ROLEMEMBER ( 'role' [ , 'database_principal' ] )
Arguments
'szerep'
Ez az ellenőrzött adatbázis szerep neve.
A szerepa sysname.
'database_principal'
Az adatbázis-felhasználó, adatbázis szerep vagy alkalmazás szerepének neve ellenőrizendő.
database_principala sysname, alapértelmezett NULL jellemmel. Ha nincs megadva érték, az eredmény a jelenlegi végrehajtási kontextuson alapul. Ha a paraméter tartalmazza a NULL szót, akkor visszaadja a NULL-t.
Visszatérési típusok
int
| Visszaadott érték | Description |
|---|---|
| 0 | database_principal nem a szerep tagja. |
| 1 | database_principala szerep tagja. |
| NULLA | database_principal vagy szerep nem érvényes, vagy nincs engedélyed a szerep tagságának megtekintésére. |
Megjegyzések
A IS_ROLEMEMBER funkciót nem támogatja egy Microsoft Entra adminisztrátor, ha az adminisztrátor egy Microsoft Entra csoport tagja. Az IS_ROLEMEMBER funkciót támogatják azok a Microsoft Entra felhasználók is, akik Microsoft Entra csoport tagjai, kivéve, ha az a csoport a Microsoft Entra adminisztrátora.
Használja IS_ROLEMEMBER-t annak megállapítására, hogy a jelenlegi felhasználó képes végrehajtani olyan műveletet, amely megköveteli az adatbázis szerepének jogosultságát.
Ha database_principal Windows bejelentkezésen alapul, például Contoso\Mary5-en, akkor IS_ROLEMEMBER NULL-ot ad vissza, kivéve, ha a database_principal engedélyt kapott vagy nem engedett meg közvetlen SQL Serverhez.
Ha az opcionális database_principal paraméter nincs megadva, és ha a database_principal Windows domain bejelentkezésen alapul, akkor az adatbázis szerepének tagja lehet egy Windows csoport tagsága révén. Az ilyen közvetett tagságok megoldásához IS_ROLEMEMBER a domain vezérlőtől kéri a Windows csoporttagsági adatokat. Ha a domain vezérlő elérhetetlen vagy nem válaszol, IS_ROLEMEMBER csak a felhasználót és a helyi csoportokat figyelembe véve adja vissza szereptagsági adatokat. Ha a megadott felhasználó nem a jelenlegi felhasználó, akkor a IS_ROLEMEMBER által visszaadott érték eltérhet a hitelesítés (például az Active Directory) SQL Server utolsó adatfrissítésétől.
Ha az opcionális database_principal paraméter megadásra kerül, a felhasználónak sys.database_principals-ben kell léteznie, különben IS_ROLEMEMBER NULL-ot ad vissza.
Ha a database_principal paraméter egy domain bejelentkezésen vagy Windows csoporton alapul, és a domain vezérlő elérhetetlen, a IS_ROLEMEMBER-hez való hívások sikertelenül járnak, és hibás vagy hiányos adatokat adhatnak vissza.
Ha a domain vezérlő nem elérhető, a IS_ROLEMEMBER-hoz hívás pontos információt ad, amikor a Windows alapvetőt helyben lehet hitelesíteni, például egy helyi Windows fiókot vagy SQL Server bejelentkezést.
IS_ROLEMEMBER mindig 0-t ad vissza, ha egy Windows csoportot használnak adatbázis fő argumentumként, és ez a Windows csoport egy másik Windows csoport tagja, amely viszont a megadott adatbázis szerepének tagja.
A Windows Vista és Windows Server 2008 felhasználói fiók-ellenőrzése (UAC) is eltérő eredményeket adhat. Ez attól függ, hogy a felhasználó Windows csoporttagként vagy egy adott SQL Server felhasználóként használta-e a szervert.
Ez a funkció a szereptagságot értékeli, nem az alapul szolgáló engedélyt. Például a db_owner fix adatbázis szerepe rendelkezik a CONTROL DATABASE jogosultsággal. Ha a felhasználónak van CONTROL DATABASE jogosultsága, de nem tagja a szerepnek, ez a függvény helyesen jelenti, hogy a felhasználó nem tagja a db_owner szerepnek, még akkor is, ha a felhasználónak ugyanaz a jogosultsága van.
A rendszertamis-fix szerver tagjai minden adatbázisba dbo felhasználóként lépnek be. A rendszergazdák tagjának engedélyét ellenőrizem a fix szerver szerep számára, a DBO engedélyeit ellenzi, nem az eredeti bejelentkezést. Mivel a dbo nem adható be adatbázis szerepbe, és nem létezik Windows csoportokban, a dbo mindig 0-t ad vissza (vagy NULL-t, ha a szerep nem létezik).
Kapcsolódó funkciók
Annak megállapításához, hogy a jelenlegi felhasználó tag-e a megadott Windows csoportnak, Microsoft Entra csoportnak vagy SQL Server adatbázis-szerepnek, használja a IS_MEMBER (Transact-SQL) jelet. Annak megállapításához, hogy egy SQL Server bejelentkezés szerver szerepkör tagja-e, használd a IS_SRVROLEMEMBER (Transact-SQL) jelet.
Permissions
Az adatbázis szerepéhez VIEW DEFINITION engedély szükséges.
Példák
Az alábbi példa mutatja, hogy a jelenlegi felhasználó tag-e a db_datareader fix adatbázis szerepnek.
IF IS_ROLEMEMBER ('db_datareader') = 1
print 'Current user is a member of the db_datareader role'
ELSE IF IS_ROLEMEMBER ('db_datareader') = 0
print 'Current user is NOT a member of the db_datareader role'
ELSE IF IS_ROLEMEMBER ('db_datareader') IS NULL
print 'ERROR: The database role specified is not valid.';
Lásd még:
SZEREP LÉTREHOZÁSA (Transact-SQL)
ÚJ SZEREP (Transact-SQL)
DROP ROLE (Transact-SQL)
CREATE SERVER ROLE (Transact-SQL)
SZERVER SZEREPÉNEK MÓDOSÍTÁSA (Transact-SQL)
DROP SZERVER SZEREP (Transact-SQL)
IS_MEMBER (Transact-SQL)
IS_SRVROLEMEMBER (Transact-SQL)
Biztonsági funkciók (Transact-SQL)