Sdílet prostřednictvím


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 objekty zabezpečení, které seskupují další objekty zabezpečení. Role na úrovni serveru jsou v oboru oprávnění široké na úrovni 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á se vztahují na obor serveru, ale mohou také dědit až do jednotlivých databází (s výjimkou ##MS_LoginManager## role serveru).)

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á v master databázích WideWorldImporters uživatelský účet. Tento uživatel má VIEW DATABASE STATE také oprávnění v těchto dvou databázích dědičností.

Do rolí na úrovni serveru můžete přidat objekty zabezpečení na úrovni serveru (přihlášení SQL Serveru, účty Windows a skupiny Windows). Každý člen pevné role serveru může do stejné role přidat další přihlášení. Členové uživatelem definovaných rolí serveru nemůžou do role přidávat další objekty zabezpečení 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. GRANTMohou oprávnění a DENYREVOKE oprávnění na úrovni serveru. SecurityAdmin může také GRANToprávnění na DENYúrovni databáze 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 Tento příkaz mohou spustit BULK INSERT členové pevné role serveru bulkadmin. Č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 nebo ADMINISTER BULK OPERATIONS oprávnění bulkadmin nejsou pro SQL Server v Linuxu podporované.

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 objekt zabezpečení serveru není udělen nebo odepřen konkrétní oprávnění k zabezpečitelnému objektu, uživatel zdědí oprávnění udělená veřejnosti v daném objektu. 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.

Oprava rolí na úrovni serveru zavedených 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ého pevného správce zabezpečení role serveru tato role neumožňuje členům 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 tuto novou roli použít i v minulosti, protože tato role existuje také ve službě Azure SQL Database a pomáhá tak používat stejné skripty v různých prostředích.

Č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é jsou pokryty VIEW SERVER STATE, a v uvedeném pořadí mají VIEW DATABASE STATE oprávnění k jakékoli databázi, na které 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 pokryty VIEW SERVER SECURITY STATE, a v uvedeném pořadí mají VIEW DATABASE SECURITY STATE oprávnění k jakékoli databázi, na které 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 rolí serveru 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 . Objekty zabezpečení s CONTROL SERVER oprávněním mohou být odepřeny konkrétní oprávnění. Z hlediska zabezpečení zvažte objekty zabezpečení s CONTROL SERVER identickými členy sysadmin, a to z několika možných způsobů, jak zvýšit oprávnění z CONTROL SERVER úplného správce systému. 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.
ROLE DROP 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 roli ALTER SERVER .
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 roli ALTER SERVER .

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

Když nainstalujete rozšíření Azure pro SQL Server, instalace:

  1. Vytvoří roli na úrovni serveru: SQLArcExtensionServerRole

  2. Vytvoří roli na úrovni databáze: SQLArcExtensionUserRole

  3. Přidá účet NT AUTHORITY\SYSTEM* ke každé roli.

  4. Mapuje 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ý službou Azure Arc tak, aby běžel v režimu s nejnižšími oprávněními (k dispozici ve verzi Preview). Podrobnosti najdete v tématu Provoz SQL Serveru povoleného službou Azure Arc s nejnižšími oprávněními (Preview).

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

SqlServerExtensionPermissionProvider je úloha systému Windows. Když zjistí, uděluje nebo odvolá oprávnění v SQL Serveru:

  • Na hostiteli se nainstaluje nová instance SQL Serveru.
  • Instance SQL Serveru se odinstaluje z hostitele.
  • Je povolená nebo zakázaná funkce na úrovni instance nebo se aktualizují nastavení.
  • Služba rozšíření se restartuje.

Poznámka:

Před vydáním v červenci 2024 je SqlServerExtensionPermissionProvider naplánovaným úkolem. Koná se každou hodinu.

Podrobnosti najdete v tématu Konfigurace účtů a oprávnění služby Windows 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í.