Kiszolgálószintű szerepkörök

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Az SQL Server kiszolgálószintű szerepköröket biztosít a kiszolgálói engedélyek kezeléséhez. Ezek a szerepkörök olyan biztonsági entitások, amelyek más entitásokat csoportosítanak. A szerver szintű szerepkörök a kiszolgáló teljes engedélyhatókörére kiterjednek. (A szerepkörök olyanok, mint a Windows operációs rendszer csoportjai .)

Az SQL Server 2019 (15.x) és a korábbi verziók kilenc rögzített kiszolgálói szerepkört biztosítottak. Nem lehet megváltoztatni a fix szerver szerepekhez adott jogosultságokat (kivéve a nyilvános szerepeket). Az SQL Server 2012 -től kezdve (11.x) létrehozhat felhasználó által definiált kiszolgálói szerepköröket, és kiszolgálószintű engedélyeket adhat hozzá a felhasználó által definiált kiszolgálói szerepkörökhöz.

Az SQL Server 2022 (16.x) 10 további szerverszerepet tartalmaz, amelyeket kifejezetten a legkisebb kiváltság elvének szem előtt terveztek. Ezek a szerepek előtagot ##MS_ és utótagot ##viselnek , ami megkülönbözteti őket a sima felhasználó által létrehozott alapelvektől és egyedi szerverszerepektől. Ezek az új szerepek jogosultságokat tartalmaznak, amelyek szerver hatótávolságra vonatkoznak, de az egyes adatbázisokra is örökölhetnek (kivéve a ##MS_LoginManager## szerver szerepet).

A helyszíni SQL Serverhez hasonlóan a kiszolgálói engedélyek hierarchikusan vannak rendszerezve. A kiszolgálószintű szerepkörök által birtokolt engedélyek adatbázis-engedélyekre propagálhatók. Ahhoz, hogy az engedélyek adatbázisszinten hatékonyan hasznosak legyenek, a bejelentkezésnek vagy a kiszolgálószintű szerepkör ##MS_DatabaseConnector## tagjának kell lennie (az SQL Server 2022-től kezdve (16.x)), amely minden adatbázisnak megadja az CONNECT engedélyt, vagy felhasználói fiókkal kell rendelkeznie az egyes adatbázisokban. Ez a követelmény az master adatbázisra is vonatkozik.

Vegye figyelembe a következő példát: A kiszolgálószintű szerepkör ##MS_ServerStateReader## rendelkezik az engedéllyel VIEW SERVER STATE. A szerepkörhöz tartozó bejelentkezések felhasználói fiókkal rendelkeznek a master és WideWorldImporters adatbázisokban. Ez a felhasználó rendelkezik a VIEW DATABASE STATE jogosultsággal ezen a két adatbázisban öröklés útján.

Kiszolgálószintű szerepkörökbe kiszolgálószintű tagokat (SQL Server-bejelentkezéseket, Windows-fiókokat és Windows-csoportokat) vehet fel. A rögzített kiszolgálói szerepkör minden tagja hozzáadhat más bejelentkezéseket ugyanahhoz a szerepkörhöz. A felhasználó által definiált kiszolgálói szerepkörök tagjai nem adhatnak hozzá más kiszolgálói főneveket a szerepkörhöz.

Kiszolgálószintű szerepkörök rögzítve

Megjegyzés:

Ezeket a szerepköreket az SQL Server 2022 (16.x) előtt vezették be, és nem elérhetők az Azure SQL Database-ben vagy az Azure Synapse Analytics-ben. Az Azure SQL Database-nek saját, szerverszintű szerepei vannak, amelyek megfelelnek az SQL Server 2022 (16.x) bevezetett szerepeknek. További információkért lásd az Azure SQL Database kiszolgálószerepkörei az engedélyek kezeléséhez és az Adatbázis-hozzáférés engedélyezése az SQL Database, az SQL Managed Instance és az Azure Synapse Analytics szolgáltatáshoz című cikkeket.

Az alábbi táblázat a rögzített kiszolgálószintű szerepköröket és azok képességeit mutatja be.

Kijavítottuk a kiszolgálószintű szerepkört Leírás
sysadmin A sysadmin rögzített kiszolgálói szerepkör tagjai bármilyen tevékenységet végrehajthatnak a kiszolgálón. Fontos: az engedélyek nem tagadhatók meg a szerepkör tagjai számára.
serveradmin A serveradmin rögzített kiszolgálói szerepkör tagjai módosíthatják a kiszolgálószintű konfigurációs beállításokat, és leálltathatják a kiszolgálót.
securityadmin A securityadmin rögzített kiszolgálói szerepkör tagjai kezelik a bejelentkezéseket és azok tulajdonságait. Képesek a GRANT, DENY, és REVOKE kiszolgálószintű engedélyekkel dolgozni. Használhatnak GRANTtovábbá , DENY, és REVOKE adatbázis-szintű jogosultságokat, ha hozzáférnek egy adatbázishoz. Emellett alaphelyzetbe állíthatják az SQL Server-bejelentkezések jelszavát.

FONTOS: Az adatbázismotorhoz való hozzáférés biztosítása és a felhasználói engedélyek konfigurálása lehetővé teszi, hogy a biztonsági rendszergazda a legtöbb kiszolgálói engedélyt hozzárendelje. Kezeld a securityadmin szerepet egyenértékűnek a rendszergazdálkodó szereppel. Alternatív megoldásként az SQL Server 2022-től kezdve (16.x) fontolja meg az új rögzített kiszolgálói szerepkör ##MS_LoginManager## használatát.
processadmin A processadmin rögzített kiszolgálói szerepkör tagjai befejezhetik az SQL Server egy példányán futó folyamatokat.
setupadmin A setupadmin rögzített kiszolgálói szerepkör tagjai Transact-SQL utasítások használatával adhatnak hozzá és távolíthatnak el csatolt kiszolgálókat. (a Management Studio használatakor sysadmin-tagságra van szükség.)
bulkadmin A bulkadmin rögzített kiszolgálói szerepkör tagjai futtathatják az utasítást BULK INSERT . A szerepkör tagjai bizonyos feltételek mellett emelhetik jogosultságaikat. Alkalmazza a minimális jogosultság elvét a szerepkör hozzárendelésekor, és figyelje a tagok által végzett összes tevékenységet.

A bulkadmin szerepkör vagy ADMINISTER BULK OPERATIONS engedélyek linuxos SQL Server esetén nem támogatottak.

A tömeges műveletek (BULK INSERTutasítások) nem támogatottak a Microsoft Entra hitelesítésen alapuló bejelentkezésekhez, sem Linuxon, sem Windows-on. Ebben a forgatókönyvben csak a sysadmin szerepkör tagjai végezhetnek tömeges beszúrásokat az SQL Serverhez.
diskadmin A diskadmin rögzített kiszolgálói szerepkör tagjai kezelhetik a lemezfájlokat.
dbcreator A dbcreator rögzített kiszolgálói szerepkör tagjai bármilyen adatbázist létrehozhatnak, módosíthatnak, elvethetnek és visszaállíthatnak.
public Minden SQL Server-bejelentkezés a nyilvános kiszolgálói szerepkörhöz tartozik. Ha egy szerver főfelhasználó nem kap vagy nem tilt meg adott engedélyeket egy védett objektumon, akkor a felhasználó örökli az objektumhoz nyilvános számára megadott engedélyeket. Csak akkor rendeljen hozzá nyilvános engedélyeket bármely objektumhoz, ha azt szeretné, hogy az objektum minden felhasználó számára elérhető legyen. A nyilvános tagság nem módosítható.

Megjegyzés:a közélet másképp működik, mint a többi szerep. Engedélyezheted, elutasíthatod vagy visszavonhatod a nyilvános fix szerver szerep jogát.

Fontos

A következő szerverszerepek által biztosított jogosultságok többsége nem alkalmazható az Azure Synapse Analytics-re: processadmin, serveradmin, setupadmin és diskadmin.

Az SQL Server 2022-ben bevezetett rögzített kiszolgálószintű szerepkörök

Az alábbi táblázat az SQL Server 2022-ben (16.x) bevezetett rögzített kiszolgálószintű szerepköröket és azok képességeit mutatja be.

Megjegyzés:

Az Azure SQL Database és az Azure SQL Managed Instance támogatja ezeket a szerepeket. Az Azure Synapse Analytics nem.

Annak megtekintéséhez, hogy egy kiszolgáló milyen szerepkörökkel rendelkezik, kérdezze le a(z) sys.server_principals azon sorait, amelyekben a(z) type_desc értéke SERVER_ROLE.

Kijavítottuk a kiszolgálószintű szerepkört Leírás
##MS_DatabaseConnector## A ##MS_DatabaseConnector## rögzített kiszolgálói szerepkör tagjai bármilyen adatbázishoz csatlakozhatnak anélkül, hogy az adatbázisban felhasználói fiókra kellene csatlakozniuk.

Ha meg szeretné tagadni egy adott adatbázis CONNECT engedélyét, a felhasználók létrehozhatnak egy megfelelő felhasználói fiókot ehhez a bejelentkezéshez az adatbázisban, majd DENY az adatbázis-felhasználónak CONNECT engedélyt. Ez a DENY engedély felülírja a szerepkörből származó GRANT CONNECT engedélyt.
##MS_LoginManager## A ##MS_LoginManager## rögzített kiszolgálói szerepkör tagjai létrehozhatnak, törölhetnek és módosíthatnak bejelentkezéseket. A régi rögzített kiszolgálói szerepkör securityadmin-jével ellentétben ez a szerepkör nem teszi lehetővé a tagok számára a GRANT jogosultságokat. Ez egy korlátozottabb szerepkör, amely segít megfelelni a minimális jogosultság elvének.
##MS_DatabaseManager## A ##MS_DatabaseManager## rögzített kiszolgálói szerepkör tagjai létrehozhatnak adatbázisokat, és törölhetik a saját adatbázisokat. Az adatbázist létrehozó ##MS_DatabaseManager## szerepkör tagja lesz az adatbázis tulajdonosa, amely lehetővé teszi, hogy a felhasználó dbo felhasználóként csatlakozzon az adatbázishoz. A dbo felhasználó minden adatbázis-engedéllyel rendelkezik az adatbázisban. A szerepkör tagjai bizonyos feltételek mellett emelhetik jogosultságaikat. Alkalmazza a minimális jogosultság elvét a szerepkör hozzárendelésekor, és figyelje a tagok által végzett összes tevékenységet. A Azure SQL Database használja ezt a kiszolgálói szerepkört a dbmanager rögzített adatbázis-szerepkör helyett, amely a következőben masterlétezik: .
##MS_ServerStateManager## A ##MS_ServerStateManager## rögzített kiszolgálói szerepkör tagjai ugyanazokkal az engedélyekkel rendelkeznek, mint a ##MS_ServerStateReader## szerepkör. A szerep rendelkezik továbbá azzal a ALTER SERVER STATE jogosultsággal is, amely lehetővé teszi több menedzsment művelethez való hozzáférést, például: DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF().
##MS_ServerStateReader## A ##MS_ServerStateReader## rögzített kiszolgálói szerepkör tagjai olvashatják az összes olyan dinamikus felügyeleti nézetet (DMV-t) és függvényt, amelyekre a VIEW SERVER STATE vonatkozik. A tagok VIEW DATABASE STATE bármely adatbázisban is rendelkeznek jogosultsággal, ahol felhasználói fiókjuk van.
##MS_ServerPerformanceStateReader## A ##MS_ServerPerformanceStateReader## rögzített kiszolgálói szerepkör tagjai olvashatják az összes olyan dinamikus felügyeleti nézetet (DMV-t) és függvényt, amelyekre a VIEW SERVER PERFORMANCE STATE vonatkozik. A tagok VIEW DATABASE PERFORMANCE STATE bármely adatbázisban is rendelkeznek jogosultsággal, ahol felhasználói fiókjuk van. Ez a szerep a ##MS_ServerStateReader##részhalmaza, amely segít megfelelni a legkisebb kiváltság elvének.
##MS_ServerSecurityStateReader## A ##MS_ServerSecurityStateReader## rögzített kiszolgálói szerepkör tagjai olvashatják az összes olyan dinamikus felügyeleti nézetet (DMV-t) és függvényt, amelyekre a VIEW SERVER SECURITY STATE vonatkozik. A tagok VIEW DATABASE SECURITY STATE bármely adatbázisban is rendelkeznek jogosultsággal, ahol felhasználói fiókjuk van. Ez a szerep a ##MS_ServerStateReader## egy kisebb részhalmaza, amely elősegíti a legkisebb jogosultság elvének való megfelelést.
##MS_DefinitionReader## A(z) ##MS_DefinitionReader## rögzített kiszolgálói szerepkör tagjai olvashatják az összes olyan katalógusnézetet, amelyekre a(z) VIEW ANY DEFINITION vonatkozik. A tagok VIEW DEFINITION bármely adatbázisban is rendelkeznek jogosultsággal, ahol felhasználói fiókjuk van.
##MS_PerformanceDefinitionReader## A(z) ##MS_PerformanceDefinitionReader## rögzített kiszolgálói szerepkör tagjai olvashatják az összes olyan katalógusnézetet, amelyekre a(z) VIEW ANY PERFORMANCE DEFINITION vonatkozik. A tagok VIEW PERFORMANCE DEFINITION bármely adatbázisban is rendelkeznek jogosultsággal, ahol felhasználói fiókjuk van. Ez a szerep ##MS_DefinitionReader## része.
##MS_SecurityDefinitionReader## A(z) ##MS_SecurityDefinitionReader## rögzített kiszolgálói szerepkör tagjai olvashatják az összes olyan katalógusnézetet, amelyekre a(z) VIEW ANY SECURITY DEFINITION vonatkozik. A tagok VIEW SECURITY DEFINITION bármely adatbázisban is rendelkeznek jogosultsággal, ahol felhasználói fiókjuk van. Ez a szerep a ##MS_DefinitionReader## egy kisebb részhalmaza, amely elősegíti a legkisebb jogosultság elvének való megfelelést.

Rögzített kiszolgálói szerepkörök engedélyei

Minden rögzített kiszolgálói szerepkörhöz bizonyos engedélyek vannak hozzárendelve.

Új rögzített kiszolgálói szerepkörök engedélyei az SQL Server 2022-ben

Az alábbi táblázat a kiszolgálószintű szerepkörökhöz rendelt engedélyeket mutatja be. Az öröklődő adatbázisszintű engedélyeket is megjeleníti, amíg a felhasználó csatlakozni tud az egyes adatbázisokhoz.

Kijavítottuk a kiszolgálószintű szerepkört Kiszolgálószintű engedélyek Adatbázisszintű engedélyek
##MS_DatabaseConnector## - CONNECT ANY DATABASE - CONNECT
##MS_LoginManager## - CREATE LOGIN
- ALTER ANY LOGIN
Nincs adat.
##MS_DatabaseManager## - CREATE ANY DATABASE
- ALTER ANY DATABASE
- ALTER
##MS_ServerStateManager## - ALTER SERVER STATE
- VIEW SERVER STATE
- VIEW SERVER PERFORMANCE STATE
- VIEW SERVER SECURITY STATE
- VIEW DATABASE STATE
- VIEW DATABASE PERFORMANCE STATE
- VIEW DATABASE SECURITY STATE
##MS_ServerStateReader## - VIEW SERVER STATE
- VIEW SERVER PERFORMANCE STATE
- VIEW SERVER SECURITY STATE
- VIEW DATABASE STATE
- VIEW DATABASE PERFORMANCE STATE
- VIEW DATABASE SECURITY STATE
##MS_ServerPerformanceStateReader## - VIEW SERVER PERFORMANCE STATE - VIEW DATABASE PERFORMANCE STATE
##MS_ServerSecurityStateReader## - VIEW SERVER SECURITY STATE - VIEW DATABASE SECURITY STATE
##MS_DefinitionReader## - VIEW ANY DATABASE
- VIEW ANY DEFINITION
- VIEW ANY PERFORMANCE DEFINITION
- VIEW ANY SECURITY DEFINITION
- VIEW DEFINITION
- VIEW PERFORMANCE DEFINITION
- VIEW SECURITY DEFINITION
##MS_PerformanceDefinitionReader## - VIEW ANY PERFORMANCE DEFINITION - VIEW PERFORMANCE DEFINITION
##MS_SecurityDefinitionReader## - VIEW ANY SECURITY DEFINITION - VIEW SECURITY DEFINITION

Az SQL Server 2019-hez és korábbi verziókhoz tartozó kiszolgálói szerepkörök engedélyei

Az alábbi ábrán az örökölt kiszolgálói szerepkörökhöz (SQL Server 2019 (15.x) és korábbi verziókhoz rendelt engedélyek láthatók.

Rögzített kiszolgálói szerepkör-engedélyeket bemutató ábra.

Az CONTROL SERVER engedély hasonló, de nem azonos a sysadmin rögzített kiszolgálói szerepkörrel. Az CONTROL SERVER engedéllyel rendelkező felhasználók bizonyos engedélyektől megfoszthatók. Biztonsági szempontból tekintse CONTROL SERVER-ot sysadmin-tagokkal azonosnak, mivel számos lehetséges mód van arra, hogy CONTROL SERVER-ről teljes sysadminra emelje az engedélyeket. Számos DBCC parancs és számos rendszereljárás megköveteli a sysadmin rögzített kiszolgálói szerepkör tagságát.

Kiszolgálószintű engedélyek

A felhasználó által definiált kiszolgálói szerepkörökhöz csak kiszolgálószintű engedélyek vehetők fel. A kiszolgálószintű engedélyek listázásához hajtsa végre a következő utasítást. A kiszolgálószintű engedélyek a következők:

SELECT *
FROM sys.fn_builtin_permissions('SERVER')
ORDER BY permission_name;

További információ az engedélyekről: Engedélyek (adatbázismotor) és sys.fn_builtin_permissions.

Kiszolgálószintű szerepkörök kezelése

Az alábbi táblázat ismerteti a kiszolgálószintű szerepkörök használatához használható parancsokat, nézeteket és függvényeket.

Tulajdonság Típus Leírás
sp_helpsrvrole Metadaták Kiszolgálószintű szerepkörök listáját adja vissza.
sp_helpsrvrolemember Metadaták Egy kiszolgálószintű szerepkör tagjaival kapcsolatos információkat ad vissza.
sp_srvrolepermission Metadaták Egy kiszolgálószintű szerepkör engedélyeit jeleníti meg.
IS_SRVROLEMEMBER Metadaták Azt jelzi, hogy egy SQL Server-bejelentkezés tagja-e a megadott kiszolgálószintű szerepkörnek.
sys.server_role_members Metadaták Egy sort ad vissza az egyes kiszolgálószintű szerepkörök minden tagjára.
CREATE SERVER ROLE Parancs Létrehoz egy felhasználó által definiált kiszolgálói szerepkört.
ALTER SERVER ROLE Parancs Módosítja a kiszolgálói szerepkör tagságát, vagy módosítja egy felhasználó által definiált kiszolgálói szerepkör nevét.
DROP SERVER ROLE Parancs Eltávolít egy felhasználó által definiált kiszolgálói szerepkört.
sp_addsrvrolemember Parancs Egy kiszolgálószintű szerepkör tagjaként adja hozzá a bejelentkezést. Elavult vagy megszüntetett. A ALTER SERVER ROLE használható helyette.
sp_dropsrvrolemember Parancs Eltávolít egy SQL Server-bejelentkezést vagy egy Windows-felhasználót vagy -csoportot egy kiszolgálószintű szerepkörből. Elavult vagy megszüntetett. A ALTER SERVER ROLE használható helyette.

Az Azure Arc által engedélyezett SQL Server-szerepkörök

Ha az Azure bővítményt telepíti nem minimális jogosultsági módban az SQL Serverhez, a telepítés:

  1. Kiszolgálószintű szerepkört hoz létre: SQLArcExtensionServerRole
  2. Adatbázisszintű szerepkört hoz létre: SQLArcExtensionUserRole
  3. Hozzáadja az NT AUTHORITY\SYSTEM fiókot az egyes szerepkörökhöz.
  4. Térképek NT AUTHORITY\SYSTEM az egyes adatbázisok adatbázisszintjén
  5. Minimális engedélyek megadása az engedélyezett funkciókhoz

Másik lehetőségként konfigurálhatja a Azure Arc által engedélyezett SQL Server, hogy a legkevésbé jogosultsági módban fusson. További információkért lásd: Minimális jogosultságokkal működő Azure Arc által engedélyezett SQL Server használata.

Emellett Azure SQL Server bővítménye visszavonja ezeknek a szerepköröknek az engedélyeit, ha már nincs rájuk szükség adott funkciókhoz.

Megjegyzés:

A korábban ismertetett műveletek megkövetelik, hogy a központi telepítő NT AUTHORITY\SYSTEMként csatlakozzon SQL Server. Ha a NT AUTHORITY\SYSTEM bejelentkezést eltávolítják, letiltják, vagy CONNECT SQL engedély megtagadásra kerül, akkor a telepítő nem tudja végrehajtani a műveletek egyikét sem, és így az Azure Extension for SQL Server kiépítése meghiúsul. Tekintse meg a bejelentkezés ellenőrzésének és visszaállításának előfeltételeit.

SqlServerExtensionPermissionProvider Windows-feladat. A Deployer.exe-t hajtja végre, hogy jogosultságokat adjon vagy vonjon vissza az SQL Serverben, ha ezt észleli.

  • Új SQL Server-példány van telepítve a gazdagépen
  • A rendszer eltávolít egy SQL Server-példányt a gazdagépről
  • A példányszintű funkciók engedélyezve vannak vagy le vannak tiltva, vagy a beállítások frissülnek
  • A bővítményszolgáltatás újraindul
  • Az igény szerinti (JIT) engedélyek engedélyezve vagy letiltva vannak

Megjegyzés:

A 2024. júliusi kiadás előtt egy ütemezett feladat volt SqlServerExtensionPermissionProvider, amely óránként futott.

Részletekért tekintse át a Windows szolgáltatásfiókok és engedélyek konfigurálása az SQL Server Azure-bővítményhez dokumentumot.

Ha eltávolítja az Azure bővítményt az SQL Serverből, a kiszolgálószintű és az adatbázisszintű szerepkörök el lesznek távolítva.

Engedélyekért tekintse át az engedélyeket.