Role na úrovni serveru

platí pro:SQL Serverazure SQL Managed InstanceAnalytics Platform System (PDW)

SQL Server poskytuje role na úrovni serveru, které vám pomůžou spravovat oprávnění na serveru. Tyto role jsou principály zabezpečení, které sdružují další principály. Role na úrovni serveru mají rozsah oprávnění serveru. (Role jsou jako skupiny v operačním systému Windows.)

SQL Server 2019 (15.x) a předchozí verze poskytují devět pevných rolí serveru. Oprávnění udělená pevným rolím serveru (s výjimkou veřejných) se nedají změnit. Od VERZE SQL Server 2012 (11.x) můžete vytvářet role serveru definované uživatelem a přidávat oprávnění na úrovni serveru k rolím serveru definovaným uživatelem. SQL Server 2022 (16.x) obsahuje 10 dalších rolí serveru, které jsou navrženy speciálně s ohledem na princip nejnižších oprávnění , které mají předponu ##MS_ a příponu ## k odlišení od ostatních běžných objektů zabezpečení vytvořených uživatelem a vlastních rolí serveru. Tyto nové role obsahují oprávnění, která platí na úrovni serveru, ale mohou se také dědit až do jednotlivých databází (s výjimkou ##MS_LoginManager## serverové role).

Stejně jako místní SQL Server jsou oprávnění k serveru uspořádaná hierarchicky. Oprávnění, která jsou uložená těmito rolemi na úrovni serveru, se můžou rozšířit na oprávnění databáze. Aby byla oprávnění efektivně užitečná na úrovni databáze, musí být přihlášení členem role ##MS_DatabaseConnector## na úrovni serveru (počínaje SQL Serverem 2022 (16.x), která uděluje CONNECT oprávnění všem databázím, nebo mít uživatelský účet v jednotlivých databázích. To platí také pro master databázi.

Představte si následující příklad: Role ##MS_ServerStateReader## na úrovni serveru obsahuje oprávnění VIEW SERVER STATE. Přihlášení, které je členem této role, má uživatelský účet v databázích master a WideWorldImporters. Tento uživatel má VIEW DATABASE STATE také oprávnění v těchto dvou databázích díky dědičnosti.

Principály na úrovni serveru (přihlášení SQL Serveru, účty Windows a skupiny Windows) můžete přidat do role na úrovni serveru. Každý člen pevné role serveru může do stejné role přidat další přihlášení. Členové uživatelsky definovaných rolí serveru nemohou do role přidávat další principály serveru.

Opravené role na úrovni serveru

Poznámka:

Tyto role na úrovni serveru zavedené před SQL Serverem 2022 (16.x) a nejsou dostupné ve službě Azure SQL Database nebo Azure Synapse Analytics. Pro správu oprávnění existují speciální role serveru Azure SQL Database , které jsou ekvivalentní rolím na úrovni serveru zavedeným v SQL Serveru 2022 (16.x). Další informace o službě SQL Database naleznete v tématu Řízení a udělení přístupu k databázi..

Následující tabulka ukazuje pevné role na úrovni serveru a jejich možnosti.

Pevná role na úrovni serveru Popis
Správce systému Členové pevné role serveru správce systému mohou provádět jakoukoli aktivitu na serveru. Důležité: Oprávnění nelze odepřít členům této role.
správce serveru Členové správce serveru pevné role serveru můžou změnit možnosti konfigurace pro celý server a server vypnout.
securityadmin Členové správce zabezpečení pevné role serveru spravují přihlášení a jejich vlastnosti. Mohou GRANT, DENY a REVOKE oprávnění na úrovni serveru. securityadmin může také GRANT, DENY a REVOKE oprávnění na úrovni databáze, pokud má přístup k databázi. Kromě toho může správce zabezpečení resetovat hesla pro přihlášení k SQL Serveru.

DŮLEŽITÝ: Možnost udělit přístup k databázovému stroji a nakonfigurovat uživatelská oprávnění umožňuje správci zabezpečení přiřadit většinu oprávnění serveru. Role správce zabezpečení by měla být považována za ekvivalentní roli správce systému . Jako alternativu zvažte použití nové pevné role serveru ##MS_LoginManager## počínaje SQL Serverem 2022 (16.x).
processadmin Členové pevné role správce procesu mohou ukončit procesy spuštěné v instanci SQL Serveru.
setupadmin Členové pevné role instalačního správce serveru mohou přidávat a odebírat propojené servery pomocí příkazů Transact-SQL. (Při použití sady Management Studio je potřeba členství správce systému .)
bulkadmin Členové bulkadmin pevné role serveru mohou spustit BULK INSERT. Členové této role mohou za určitých podmínek zvýšit svá oprávnění. Při přiřazování této role použijte zásadu nejnižší úrovně oprávnění a monitorujte všechny aktivity prováděné členy.

Role bulkadmin ani ADMINISTER BULK OPERATIONS nejsou pro SQL Server na Linuxu podporována.

Hromadné operace (BULK INSERT příkazy) nejsou podporovány pro přihlášení na základě ověřování Microsoft Entra v Linuxu nebo Windows. V tomto scénáři můžou hromadné vkládání sql Serveru provádět pouze členové role správce systému .
diskadmin Pevná role serveru správce disku se používá ke správě souborů disku.
dbcreator Členové dbcreatoru pevné role serveru mohou vytvářet, měnit, odstraňovat a obnovovat libovolnou databázi.
veřejný Každé přihlášení k SQL Serveru patří do role veřejného serveru. Pokud uživatel nemá výslovně udělena nebo odepřena konkrétní oprávnění k zabezpečitelnému objektu, zdědí oprávnění udělená public pro daný objekt. Pokud chcete, aby byl objekt dostupný všem uživatelům, přiřaďte pouze veřejná oprávnění k libovolnému objektu. Nemůžete změnit členství ve veřejném prostředí.

Poznámka:Public se implementuje jinak než jiné role a oprávnění se dají udělit, odepřít nebo odvolat z veřejných pevných rolí serveru.

Důležité

Většina oprávnění poskytovaných následujícími rolemi serveru se nevztahuje na Azure Synapse Analytics – processadmin, serveradmin, setupadmin a diskadmin.

Zavedené pevné role na úrovni serveru v SQL Serveru 2022

Následující tabulka uvádí pevné role na úrovni serveru zavedené v SQL Serveru 2022 (16.x) a jejich schopnosti.

Poznámka:

Tato oprávnění na úrovni serveru nejsou dostupná pro Azure SQL Managed Instance ani Azure Synapse Analytics. ##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader##a ##MS_ServerSecurityStateReader## je zaveden v SQL Serveru 2022 (16.x) a není k dispozici ve službě Azure SQL Database.

Pevná role na úrovni serveru Popis
##MS_DatabaseConnector## ##MS_DatabaseConnector## Členové pevné role serveru se můžou připojit k jakékoli databázi bez nutnosti připojení k uživatelskému účtu v databázi.

Aby uživatelé odepřeli CONNECT oprávnění ke konkrétní databázi, mohou pro toto přihlášení v databázi vytvořit odpovídající uživatelský účet a pak DENYCONNECT oprávnění pro uživatele databáze. Toto DENY oprávnění přerušuje GRANT CONNECT oprávnění pocházející z této role.
##MS_LoginManager## ##MS_LoginManager## Členové pevné role serveru mohou vytvářet, odstraňovat a upravovat přihlášení. Na rozdíl od staré pevné role správce zabezpečení serveru tato role neumožňuje členům přiřadit oprávnění GRANT. Je to omezenější role, která pomáhá dodržovat zásadu nejnižších oprávnění.
##MS_DatabaseManager## ##MS_DatabaseManager## Členové pevné role serveru mohou vytvářet a odstraňovat databáze. Členem ##MS_DatabaseManager## role, která vytváří databázi, se stane vlastníkem této databáze, což uživateli umožní připojit se k této databázi jako dbo uživatel. Uživatel dbo má v databázi všechna oprávnění k databázi. ##MS_DatabaseManager## Členové role nemusí mít nutně oprávnění pro přístup k databázím, které nevlastní. Tato role serveru má stejná oprávnění jako role dbcreator v SQL Serveru, ale doporučujeme, abyste použili tuto novou roli místo té staré, protože tato role existuje také ve službě Azure SQL Database, což umožňuje používat stejné skripty napříč různými prostředími.

Členové této role mohou za určitých podmínek zvýšit svá oprávnění. Při přiřazování této role použijte zásadu nejnižší úrovně oprávnění a monitorujte všechny aktivity prováděné členy.
##MS_ServerStateManager## ##MS_ServerStateManager## Členové pevné role serveru mají stejná oprávnění jako role##MS_ServerStateReader##. ALTER SERVER STATE Obsahuje také oprávnění, které umožňuje přístup k několika operacím správy, například: DBCC FREEPROCCACHE, , DBCC FREESYSTEMCACHE ('ALL')DBCC SQLPERF()
##MS_ServerStateReader## ##MS_ServerStateReader## Členové pevné role serveru mohou číst všechna zobrazení dynamické správy (DMV) a funkce, které zahrnuje VIEW SERVER STATE, a mají oprávnění VIEW DATABASE STATE k jakékoli databázi, kde má člen této role uživatelský účet.
##MS_ServerPerformanceStateReader## ##MS_ServerPerformanceStateReader## Členové pevné role serveru mohou číst všechna zobrazení dynamické správy (DMV) a funkce, které jsou pokryty VIEW SERVER PERFORMANCE STATE, a v uvedeném pořadí mají VIEW DATABASE PERFORMANCE STATE oprávnění k jakékoli databázi, na které má člen této role uživatelský účet. Podmnožina toho, k čemu ##MS_ServerStateReader## má role serveru přístup, což pomáhá dodržovat zásadu nejnižších oprávnění.
##MS_ServerSecurityStateReader## ##MS_ServerSecurityStateReader## Členové pevné role serveru mohou číst všechna zobrazení dynamické správy (DMV) a funkce, které jsou zahrnuty do VIEW SERVER SECURITY STATE. Mají odpovídající oprávnění VIEW DATABASE SECURITY STATE k jakékoli databázi, na níž má člen této role uživatelský účet. Malá podmnožina toho, k čemu ##MS_ServerStateReader## má role serveru přístup, což pomáhá dodržovat zásadu nejnižších oprávnění.
##MS_DefinitionReader## ##MS_DefinitionReader## Členové pevné role serveru mohou číst všechna zobrazení katalogu, která jsou pokrytá VIEW ANY DEFINITION, a mají odpovídající oprávnění VIEW DEFINITION k jakékoli databázi, na které má člen této role uživatelský účet.
##MS_PerformanceDefinitionReader## ##MS_PerformanceDefinitionReader## Členové pevné role serveru mohou číst všechna zobrazení katalogu, která jsou pokrytá VIEW ANY PERFORMANCE DEFINITION, a mají odpovídající oprávnění VIEW PERFORMANCE DEFINITION k jakékoli databázi, na které má člen této role uživatelský účet. Podmnožina toho, k čemu ##MS_DefinitionReader## má role serveru přístup.
##MS_SecurityDefinitionReader## ##MS_SecurityDefinitionReader## Členové pevné role serveru mohou číst všechna zobrazení katalogu, která jsou pokrytá VIEW ANY SECURITY DEFINITION, a mají odpovídající oprávnění VIEW SECURITY DEFINITION k jakékoli databázi, na které má člen této role uživatelský účet. Malá podmnožina toho, k čemu ##MS_DefinitionReader## má role serveru přístup, což pomáhá dodržovat zásadu nejnižších oprávnění.

Oprávnění pro pevné role serveru

Každá pevná role serveru má přiřazená určitá oprávnění.

Oprávnění nových pevných serverových rolí v SQL Serveru 2022

Následující tabulka uvádí oprávnění přiřazená k rolím na úrovni serveru. Zobrazuje také oprávnění na úrovni databáze, která se dědí, pokud se uživatel může připojit k jednotlivým databázím.

Pevná role na úrovni serveru Oprávnění na úrovni serveru Oprávnění na úrovni databáze
##MS_DatabaseConnector## - CONNECT ANY DATABASE - CONNECT
##MS_LoginManager## - CREATE LOGIN
- ALTER ANY LOGIN
není k dispozici
##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

Oprávnění rolí serveru pro SQL Server 2019 a starší

Následující obrázek ukazuje oprávnění přiřazená starším rolím serveru (SQL Server 2019 (15.x) a starším verzím).

Diagram znázorňující pevná oprávnění role serveru

Oprávnění CONTROL SERVER je podobné, ale není identické s pevnou rolí serveru správce systému . Subjekty s oprávněním CONTROL SERVER lze odepřít konkrétní oprávnění. Z pohledu zabezpečení považujte uživatelská oprávnění s CONTROL SERVER za identická s členy sysadmin, kvůli několika možným způsobům, jak zvýšit oprávnění z CONTROL SERVER na plné sysadmin. Několik DBCC příkazů a mnoho systémových procedur vyžaduje členství v pevné roli serveru sysadmin .

Oprávnění na úrovni serveru

Do rolí serveru definovaných uživatelem je možné přidat pouze oprávnění na úrovni serveru. Pokud chcete zobrazit seznam oprávnění na úrovni serveru, spusťte následující příkaz. Oprávnění na úrovni serveru jsou:

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

Další informace o oprávněních najdete v tématu Oprávnění (databázový stroj) a sys.fn_builtin_permissions.

Práce s rolemi na úrovni serveru

Následující tabulka vysvětluje příkazy, zobrazení a funkce, které můžete použít k práci s rolemi na úrovni serveru.

Vlastnost Typ Popis
sp_helpsrvrole Metadatové informace Vrátí seznam rolí na úrovni serveru.
sp_helpsrvrolemember Metadatové informace Vrátí informace o členech role na úrovni serveru.
sp_srvrolepermission Metadatové informace Zobrazí oprávnění role na úrovni serveru.
IS_SRVROLEMEMBER Metadatové informace Určuje, jestli je přihlášení k SQL Serveru členem zadané role na úrovni serveru.
sys.server_role_members Metadatové informace Vrátí jeden řádek pro každého člena každé role na úrovni serveru.
VYTVOŘIT ROLE SERVERU Příkaz Vytvoří roli serveru definovanou uživatelem.
Změnit roli serveru Příkaz Změní členství v roli serveru nebo změní název role serveru definované uživatelem.
ODSTRANIT ROLE SERVERU Příkaz Odebere roli serveru definovanou uživatelem.
sp_addsrvrolemember Příkaz Přidá přihlášení jako člena role na úrovni serveru. Označeno jako zastaralé Místo toho použijte ALTER SERVER ROLE.
sp_dropsrvrolemember Příkaz Odebere přihlášení k SQL Serveru nebo uživatele nebo skupinu Systému Windows z role na úrovni serveru. Označeno jako zastaralé Místo toho použijte ALTER SERVER ROLE.

Role specifické pro SQL Server povolené službou Azure Arc

Při instalaci rozšíření Azure pro SQL Server v režimu bez nejnižších oprávnění instalace:

  1. Vytvoří roli na úrovni serveru: SQLArcExtensionServerRole
  2. Vytvoří roli na úrovni databáze: SQLArcExtensionUserRole
  3. Přidá účet NT AUTHORITY\SYSTEM do každé role.
  4. Mapy NT AUTHORITY\SYSTEM na úrovni databáze pro každou databázi
  5. Uděluje minimální oprávnění pro povolené funkce.

Alternativně můžete nakonfigurovat SQL Server povolený Azure Arc tak, aby běžel v režimu s nejnižšími oprávněními. Další informace naleznete v tématu Provozování SQL Serveru spravovaného pomocí Azure Arc s nejnižšími oprávněními.

Kromě toho Azure Rozšíření pro SQL Server odvolá oprávnění pro tyto role, pokud už nejsou potřeba pro konkrétní funkce.

Poznámka:

Dříve popsané akce vyžadují, aby se nasazovač připojil k SQL Server jako NT AUTHORITY\SYSTEM. Pokud je NT AUTHORITY\SYSTEM přihlášení odebráno, zakázáno nebo odepřeno CONNECT SQL oprávnění, nemůže nasazovač provést žádnou z těchto akcí a rozšíření Azure pro SQL Server se nepodaří nasadit. Postup ověření a obnovení tohoto přihlášení najdete v části Požadavky .

SqlServerExtensionPermissionProvider je úloha systému Windows. Spustí Deployer.exe, aby udělil nebo odebral oprávnění v SQL Serveru, když detekuje:

  • Na hostiteli se nainstaluje nová instance SQL Serveru.
  • Instance SQL Server se odinstaluje z hostitele.
  • Funkce na úrovni instance je povolená nebo zakázaná nebo se aktualizují nastavení.
  • Služba rozšíření se restartuje.
  • Oprávnění JIT (Just-in-Time) jsou povolená nebo zakázaná.

Poznámka:

Před červencovým vydáním v roce 2024 byl SqlServerExtensionPermissionProvider naplánovaný úkol, který běžel každou hodinu.

Podrobnosti najdete v Konfigurování účtů služby Windows a oprávnění pro rozšíření Azure pro SQL Server.

Pokud odinstalujete rozšíření Azure pro SQL Server, role na úrovni serveru a databáze se odeberou.

Pro oprávnění zkontrolujte oprávnění.