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.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Jelzi, hogy egy SQL Server bejelentkezés tagja-e a megadott szerverszerepnek.
Transact-SQL szintaxis konvenciók
Szemantika
IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )
Arguments
'szerep'
Ez a szerver szerep neve, amit ellenőriznek.
A szerepa sysname.
A szerep érvényes értékei a felhasználó által definiált szerverszerepek, valamint az alábbi fix szerver szerepek:
- Rendszergazdavezető
- serveradmin
- dbcreator
- setupadmin
- bulkadmin
- securityadmin
- diskadmin
- nyilvános
- processadmin
'bejelentkezés'
Az SQL Server bejelentkezés neve, amit ellenőrizni kell.
a bejelentkezéssysname, alapértelmezett NULL jelmel. 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 a NULL értéket adja vissza.
Megjegyzés:
Míg a Microsoft Entra bejelentkezések nyilvános előnézetben vannak Azure SQL Database és Azure Synapse számára, a Microsoft Entra fő használata bejelentkezéshez nem támogatott.
Visszatérési típusok
int
| Visszaadott érték | Description |
|---|---|
| 0 |
A bejelentkezés nem a szerep tagja. Az Azure SQL Database-ben ez az utasítás mindig 0-t ad vissza. |
| 1 | Bejelentkezés a szerep tagja. |
| NULLA | A szerep vagy bejelentkezés nem érvényes, vagy nincs engedélyed a szerep tagságának megtekintésére. |
Megjegyzések
Használd IS_SRVROLEMEMBER annak meghatározására, hogy a jelenlegi felhasználó képes végrehajtani olyan műveletet, amely a szerver szerepének jogosultságait igényli.
Ha egy Windows bejelentkezés, például Contoso\Mary5, be van jelölve a bejelentkezéshez, IS_SRVROLEMEMBERNULL-t ad vissza, kivéve, ha a bejelentkezés közvetlen hozzáférést kapott vagy megtagadták az SQL Serverhez.
Ha az opcionális bejelentkezési paraméter nincs megadva, és ha a bejelentkezés Windows domain bejelentkezés, akkor lehet egy fix szerver szerep tagja egy Windows csoport tagsága révén. Az ilyen közvetett tagságok megoldásához IS_SRVROLEMEMBER 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_SRVROLEMEMBER 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ó, az IS_SRVROLEMEMBER által visszaadott érték eltérhet az autentifikátor (például az Active Directory) SQL Server utolsó adatfrissítésétől.
Ha megadják az opcionális bejelentkezési paramétert, akkor a lekérdezés alatt álló Windows bejelentkezésnek meg kell jelennie sys.server_principals-ben, különben IS_SRVROLEMEMBER NULL-ot ad vissza. Ez azt jelzi, hogy a bejelentkezés nem érvényes.
Ha a bejelentkezési paraméter domain bejelentkezés vagy Windows csoporton alapul, és a domain vezérlő elérhetetlen, a IS_SRVROLEMEMBER-hez való hívások sikertelen lesznek, és hibás vagy hiányos adatokat adhatnak vissza.
Ha a domain vezérlő nem elérhető, a IS_SRVROLEMEMBER-re való hívás pontos információt ad vissza, amikor a Windows alapvetőt helyben hitelesíteni lehet, például egy helyi Windows fiókot vagy SQL Server bejelentkezést.
IS_SRVROLEMEMBER mindig 0-t ad vissza, ha egy Windows csoportot használnak bejelentkezési argumentumként, és ez a Windows csoport egy másik Windows csoport tagja, amely viszont a megadott szerver szerep tagja.
A felhasználói fiók vezérlési (UAC) beállítása is eltérő eredményeket okozhat. 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 rendszergazdálkodó fix szerver szerepe rendelkezik a CONTROL SERVER jogosultsággal. Ha a felhasználónak van CONTROL SERVER jogosultsága, de nem tagja a szerepnek, ez a függvény helyesen jelenti, hogy a felhasználó nem tagja a rendszergazdálkodó szerepnek, még akkor is, ha a felhasználónak ugyanaz a jogosultsága van.
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 meghatározására, hogy egy SQL Server bejelentkezés tag-e egy adatbázis szerepnek, használd a IS_ROLEMEMBER (Transact-SQL) gombot.
Permissions
A szerver szerepében VIEW DEFINITION engedélyt igényel.
Példák
A következő példa azt mutatja, hogy a jelenlegi felhasználó SQL Server bejelentkezése a fix szerver szerep tagja-e sysadmin .
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.';
Az alábbi példa azt mutatja, hogy a domain-bejelentkezési Pat tag-e a diskadmin fix szerver szerepnek.
SELECT IS_SRVROLEMEMBER('diskadmin', 'Contoso\Pat');