Rollen auf Serverebene

Gilt für:ja SQL Server (alle unterstützten Versionen) Ja Azure SQL Managed Instance jaAnalytics Platform System (PDW)

SQL Server stellt Rollen auf Serverebene bereit, um Sie beim Verwalten der Berechtigungen auf einem Server zu unterstützen. Bei diesen Rollen handelt es sich um Sicherheitsprinzipale, in denen andere Prinzipale gruppiert sind. Der Geltungsbereich der Berechtigungen von Rollen auf Serverebene erstreckt sich auf den gesamten Server. (Rollen entsprechen den Gruppen im Betriebssystem Windows.)

SQL Server 2019 und früheren Versionen haben neun feste Serverrollen bereitgestellt. SQL Server 2022 enthält 10 zusätzliche Serverrollen, die das Präfix ##MS_ und das Suffix ## aufweisen, um von anderen regulären benutzer erstellten Prinzipale und benutzerdefinierten Serverrollen zu unterscheiden. Die Berechtigungen, die den festen Serverrollen gewährt werden (außer öffentlich), können nicht geändert werden. Ab SQL Server 2012 (11.x) können Sie benutzerdefinierte Serverrollen erstellen und diesen Berechtigungen auf Serverebene hinzufügen.

Die festen Serverrollen, die nicht mit dem ##MS_ Präfix beginnen, werden für Komfort und Abwärtskompatibilität bereitgestellt. Weisen Sie nach Möglichkeit spezifischere Berechtigungen zu, oder verwenden Sie die neuen Serverrollen.

Serverberechtigungen sind hierarchisch strukturiert, wie dies auch bei einer lokalen SQL Server-Instanz der Fall ist. Die Berechtigungen, über die diese Rollen auf Serverebene verfügen, können auf Datenbankberechtigungen übertragen werden. Damit die Berechtigungen auf Datenbankebene effektiv nützlich sein können, muss eine Anmeldung entweder Mitglied der Rolle auf Serverebene ##MS_DatabaseConnector##sein, die CONNECT-Berechtigungen für alle Datenbanken erteilt oder über ein Benutzerkonto in einzelnen Datenbanken verfügen. Dies gilt auch für die master Datenbank. Beispielsweise enthält die Rolle ##MS_ServerStateReader## auf Serverebene die Berechtigung VIEW SERVER STATE. Wenn eine Anmeldung, die Mitglied dieser Rolle ist, über ein Benutzerkonto in den Datenbanken verfügt und masterWideWorldImportersdieser Benutzer über die Berechtigung verfügt, hat dieser BENUTZER die Berechtigung, DEN DATENBANKSTATUS in diesen beiden Datenbanken ANZUZEIGEN.

Sie können Prinzipale auf Serverebene (SQL Server -Anmeldungen, Windows-Konten und Windows-Gruppen) zu Rollen auf Serverebene zusammenfassen. Jedes Mitglied einer festen Serverrolle kann der gleichen Rolle andere Anmeldenamen hinzufügen. Mitglieder von benutzerdefinierten Serverrollen können der Rolle keine anderen Serverprinzipale hinzufügen.

Rollen auf Serverebene mit fester Serverebene

Hinweis

Diese serverbasierten Rollen, die vor SQL Server 2022 eingeführt wurden, sind in Azure SQL Datenbank oder Azure Synapse Analytics nicht verfügbar. Es gibt spezielle Azure SQL Datenbankserverrollen für die Berechtigungsverwaltung, die den in SQL Server 2022 eingeführten Rollen auf Serverebene entsprechen. Weitere Informationen zu SQL-Datenbank finden Sie unter Steuern und Gewähren des Datenbankzugriffs.

In der folgenden Tabelle werden die festen Rollen auf Serverebene und deren Möglichkeiten angezeigt.

Feste Rolle auf Serverebene BESCHREIBUNG
sysadmin Mitglieder der festen Serverrolle sysadmin können alle Aktivitäten auf dem Server ausführen.
serveradmin Mitglieder der festen Serverrolle serveradmin können serverweite Konfigurationsoptionen ändern und den Server herunterfahren.
securityadmin Mitglieder der festen Serverrolle securityadmin können Anmeldungen und deren Eigenschaften verwalten. Sie können Berechtigungen auf Serverebene erteilen (GRANT), verweigern (DENY) und widerrufen (REVOKE). Sie verfügen auf Datenbankebene auch über die Berechtigungen GRANT, DENY und REVOKE, sofern sie Zugriff auf eine Datenbank haben. Sie können außerdem Kennwörter für SQL Server -Anmeldungen zurücksetzen.

WICHTIG: Durch die Möglichkeit, Zugriff auf Datenbank-Engine zu gewähren und Benutzerberechtigungen zu konfigurieren, kann der Sicherheitsadministrator die meisten Serverberechtigungen zuweisen. Die Rolle securityadmin muss als Entsprechung der Rolle sysadmin behandelt werden.
processadmin Mitglieder der festen Serverrolle processadmin können Prozesse beenden, die in einer Instanz von SQL Server ausgeführt werden.
setupadmin Mitglieder der setupadmin fixed server role können verknüpfte Server mithilfe von Transact-SQL-Anweisungen hinzufügen und entfernen. (Die Verwendung von Management Studio erfordert die Mitgliedschaft in sysadmin.)
bulkadmin Mitglieder der festen Serverrolle bulkadmin können die BULK INSERT-Anweisung ausführen.

Für SQL Server für Linux wird die Massenadminrolle oder die BERECHTIGUNGEN "MASSENVORGÄNGE VERWALTEN" nicht unterstützt. Nur der sysadmin kann Masseneinfügungen in SQL Server für Linux durchführen.
diskadmin Die feste Serverrolle diskadmin wird zum Verwalten von Datenträgerdateien verwendet.
dbcreator Mitglieder der festen Serverrolle dbcreator können beliebige Datenbanken erstellen, ändern, löschen und wiederherstellen.
öffentlich Jede SQL Server-Anmeldung gehört zur Serverrolle public. Wenn ein Serverprinzipal keine bestimmten Berechtigungen für ein sicherungsfähiges Objekt erteilt oder verweigert wurde, erbt der Benutzer die Berechtigungen, die für dieses Objekt öffentlich gewährt wurden. Weisen Sie einem Objekt nur dann public-Berechtigungen zu, wenn das Objekt für alle Benutzer verfügbar sein soll. Sie können die Mitgliedschaft in der Öffentlichkeit nicht ändern.

Hinweis: Die feste Serverrolle public wird anders implementiert als andere Rollen, da Berechtigungen gewährt, verweigert oder widerrufen werden können.

Wichtig

Die meisten berechtigungen, die von den folgenden Serverrollen bereitgestellt werden, gelten nicht für Azure Synapse Analytics – processadmin, serveradmin, setupadmin und diskadmin.

In SQL Server 2022 eingeführte Rollen auf Serverebene wurden behoben

In der folgenden Tabelle sind zusätzliche rollen auf Serverebene aufgeführt, die mit SQL Server 2022 und ihren Funktionen eingeführt werden.

Hinweis

Diese Berechtigungen auf Serverebene sind für Azure SQL Managed Instance oder Azure Synapse Analytics nicht verfügbar. ##MS_PerformanceDefinitionReader#, ##MS_ServerPerformanceStateReader## und ##MS_ServerSecurityStateReader## wird in SQL Server 2022 CTP 2.1 eingeführt und ist in Azure SQL Datenbank nicht verfügbar.

Feste Rolle auf Serverebene BESCHREIBUNG
##MS_DatabaseConnector## Mitglieder der festen Serverrolle ##MS_DatabaseConnector## können sich mit jeder Datenbank verbinden, ohne dass dafür ein Benutzerkonto in der Datenbank erforderlich ist.

Um die CONNECT-Berechtigung für eine bestimmte Datenbank zu verweigern, können Benutzer*innen ein entsprechendes Benutzerkonto für diese Anmeldung in der Datenbank erstellen und dann die CONNECT-Berechtigung für den*die Datenbankbenutzer*in mit DENY überschreiben. Diese DENY-Berechtigung hebt die GRANT CONNECT-Berechtigung dieser Rolle auf.
##MS_DatabaseManager## Mitglieder der festen Serverrolle ##MS_DatabaseManager## können Datenbanken erstellen und löschen. Ein Mitglied der Rolle ##MS_DatabaseManager##, das eine Datenbank erstellt, wird zum Besitzer bzw. der Besitzerin der betreffenden Datenbank. Diese*r Benutzer*in kann dann als dbo-Benutzer*in eine Verbindung mit der Datenbank herstellen. Der*Die dbo-Benutzer*in verfügt über alle Datenbankberechtigungen in der Datenbank. Mitglieder der Rolle ##MS_DatabaseManager## verfügen nicht zwangsweise über die Berechtigung für den Zugriff auf Datenbanken, die sie nicht besitzen.
##MS_PerformanceDefinitionReader ## Mitglieder der Rolle "##MS_PerformanceDefinitionReader##" mit fester Serverfunktion können alle Katalogansichten lesen, die von VIEW ANY PERFORMANCE DEFINITION abgedeckt sind, und jeweils über die BERECHTIGUNG "PERFORMANCE DEFINITION ANZEIGEN " für jede Datenbank verfügen, auf der das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Dies ist eine Teilmenge, auf die die Serverrolle ##MS_DefinitionReader## Zugriff hat.
##MS_SecurityDefinitionReader## Mitglieder der festen Serverrolle ##MS_SecurityDefinitionReader## können alle Katalogsichten lesen, die von VIEW ANY SECURITY DEFINITION abgedeckt werden, und haben die Berechtigung VIEW SECURITY DEFINITION auf jeder Datenbank, auf der das Mitglied dieser Rolle ein Benutzerkonto hat. Dies ist eine kleine Teilmenge dessen, worauf die Serverrolle ##MS_DefinitionReader## Zugriff hat.
##MS_DefinitionReader## Mitglieder der Rolle "##MS_DefinitionReader### " können alle Katalogansichten lesen, die von VIEW ANY DEFINITION abgedeckt sind, bzw. über DIE ANSICHTSDEFINITIONsberechtigung für jede Datenbank verfügt, auf der das Mitglied dieser Rolle über ein Benutzerkonto verfügt.
##MS_LoginManager## Mitglieder der festen Serverrolle ##MS_LoginManager## können Anmeldungen erstellen oder löschen.
##MS_ServerPerformanceStateReader ## Mitglieder der Rolle "##MS_ServerPerformanceStateReader### " können alle dynamischen Verwaltungsansichten (DMVs) und Funktionen lesen, die von VIEW SERVER PERFORMANCE STATE abgedeckt sind, bzw. über die BERECHTIGUNG "DATENBANKLEISTUNGSSTATUS ANZEIGEN " für jede Datenbank verfügen, auf der das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Dies ist eine Teilmenge, auf die die Serverrolle ##MS_ServerStateReader## Zugriff hat.
##MS_ServerSecurityStateReader ## Mitglieder der Rolle "##MS_ServerSecurityStateReader### " können alle dynamischen Verwaltungsansichten (DMVs) und Funktionen lesen, die von VIEW SERVER SECURITY STATE abgedeckt sind und jeweils über die BERECHTIGUNG "DATENBANKSICHERHEITSSTATUS ANZEIGEN " für jede Datenbank verfügen, auf der das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Dies ist eine kleine Teilmenge, auf die die Serverrolle ##MS_ServerStateReader## Zugriff hat.
##MS_ServerStateReader## Mitglieder der Rolle "##MS_ServerStateReader###" können alle dynamischen Verwaltungsansichten (DMVs) und Funktionen lesen, die von VIEW SERVER STATE abgedeckt sind und jeweils über die BERECHTIGUNG "DATENBANKSTATUS ANZEIGEN" für jede Datenbank verfügen, auf der das Mitglied dieser Rolle über ein Benutzerkonto verfügt.
##MS_ServerStateManager## Mitglieder der festen Serverrolle ##MS_ServerStateManager## verfügen über die gleichen Berechtigungen, die für die Rolle ##MS_ServerStateReader## gelten. Außerdem enthält sie die ALTER SERVER STATE-Berechtigung, die den Zugriff auf mehrere Verwaltungsvorgänge ermöglicht, z. B.: DBCC FREEPROCCACHE, , DBCC FREESYSTEMCACHE ('ALL')DBCC SQLPERF()

Berechtigungen von festen Serverrollen

Jede feste Serverrolle besitzt bestimmte Berechtigungen.

Berechtigungen neuer fester Serverrollen in SQL Server 2022

Jede Rolle auf Serverebene auf fester Serverebene verfügt über bestimmte Berechtigungen, die ihm zugewiesen sind. In der folgenden Tabelle sind die Berechtigungen angegeben, die den Rollen auf Serverebene zugewiesen sind. Außerdem werden die geerbten Berechtigungen auf Datenbankebene angezeigt, solange der*die Benutzer*in eine Verbindung mit einzelnen Datenbanken herstellen kann.

Feste Rolle auf Serverebene Berechtigungen auf Serverebene Berechtigungen auf Datenbankebene
##MS_DatabaseConnector## CONNECT ANY DATABASE CONNECT
##MS_DatabaseManager## CREATE ANY DATABASE
ALTER ANY DATABASE
ALTER
##MS_PerformanceDefinitionReader ## ANZEIGEN EINER BELIEBIGEN LEISTUNGSDEFINITION LEISTUNGSDEFINITION ANZEIGEN
##MS_SecurityDefinitionReader## VIEW ANY SECURITY DEFINITION VIEW SECURITY DEFINITION
##MS_DefinitionReader## VIEW ANY DATABASE
VIEW ANY DEFINITION
ANZEIGEN EINER BELIEBIGEN LEISTUNGSDEFINITION
VIEW ANY SECURITY DEFINITION
VIEW DEFINITION
LEISTUNGSDEFINITION ANZEIGEN
VIEW SECURITY DEFINITION
##MS_LoginManager## CREATE LOGIN
ALTER ANY LOGIN
##MS_ServerPerformanceStateReader ## SERVERLEISTUNGSSTATUS ANZEIGEN DATENBANKLEISTUNGSSTATUS ANZEIGEN
##MS_ServerSecurityStateReader ## SERVERSICHERHEITSSTATUS ANZEIGEN DATENBANKSICHERHEITSSTATUS ANZEIGEN
##MS_ServerStateReader## VIEW SERVER STATE
SERVERLEISTUNGSSTATUS ANZEIGEN
SERVERSICHERHEITSSTATUS ANZEIGEN
VIEW DATABASE STATE
DATENBANKLEISTUNGSSTATUS ANZEIGEN
DATENBANKSICHERHEITSSTATUS ANZEIGEN
##MS_ServerStateManager## ALTER SERVER STATE
VIEW SERVER STATE
SERVERLEISTUNGSSTATUS ANZEIGEN
SERVERSICHERHEITSSTATUS ANZEIGEN
VIEW DATABASE STATE
DATENBANKLEISTUNGSSTATUS ANZEIGEN
DATENBANKSICHERHEITSSTATUS ANZEIGEN

Berechtigungen von Serverrollen für SQL Server 2019 und früher

Die folgende Abbildung zeigt die Berechtigungen, die den Legacyserverrollen zugewiesen sind (SQL Server 2019 und früheren Versionen).
fixed_server_role_permissions

Wichtig

Die Berechtigung CONTROL SERVER ist ähnlich, aber nicht identisch mit der festen Serverrolle sysadmin . Berechtigungen umfassen keine Rollenmitgliedschaften, und Rollenmitgliedschaften gewähren keine Berechtigungen. (z. B. CONTROL SERVER impliziert keine Mitgliedschaft in der Rolle des festen Sysadmin-Servers .) Es ist jedoch manchmal möglich, zwischen Rollen und gleichwertigen Berechtigungen identitätswechseln zu können. Die meisten DBCC -Befehle und viele Systemprozeduren erfordern die Mitgliedschaft in der festen Serverrolle sysadmin . Eine Liste mit 171 im gespeicherter Systemprozeduren, die eine sysadmin -Mitgliedschaft erfordern, finden Sie im folgenden Blogbeitrag von Andreas Wolter: CONTROL gegen sysadmin/sa: Berechtigungen, Systemprozeduren, DBCC, automatische Schema-Erstellung und Privilegienausweitung – Fallstricke.

Berechtigungen auf Serverebene

Benutzerdefinierten Serverrollen können nur Berechtigungen auf Serverebene hinzugefügt werden. Führen Sie zum Auflisten der Berechtigungen auf Serverebene die folgende Anweisung aus. Folgende Berechtigungen gelten auf Serverebene:

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

Weitere Informationen zu Berechtigungen finden Sie unter Berechtigungen (Datenbankmodul) und sys.fn_builtin_permissions (Transact-SQL).

Verwenden von Rollen auf Serverebene

In der folgenden Tabelle werden die Befehle, Sichten und Funktionen erklärt, die Sie beim Arbeiten mit Rollen auf Serverebene verwenden können.

Funktion type Beschreibung
sp_helpsrvrole (Transact-SQL) Metadaten Gibt eine Liste von Rollen auf Serverebene zurück.
sp_helpsrvrolemember (Transact-SQL) Metadaten Gibt Informationen zu Mitgliedern einer Rolle auf Serverebene zurück.
sp_srvrolepermission (Transact-SQL) Metadaten Zeigt die Berechtigungen einer Rolle auf Serverebene an.
IS_SRVROLEMEMBER (Transact-SQL) Metadaten Gibt an, ob eine SQL Server -Anmeldung Mitglied der angegebenen Rolle auf Serverebene ist.
sys.server_role_members (Transact-SQL) Metadaten Gibt eine Zeile für jedes Mitglied jeder Rolle auf Serverebene zurück.
CREATE SERVER ROLE (Transact-SQL) Get-Help Erstellt eine benutzerdefinierte Serverrolle.
ALTER SERVER ROLE (Transact-SQL) Get-Help Ändert die Mitgliedschaft einer Serverrolle oder ändert Namen einer benutzerdefinierten Serverrolle.
DROP SERVER ROLE (Transact-SQL) Get-Help Entfernt eine benutzerdefinierte Serverrolle.
sp_addsrvrolemember (Transact-SQL) Get-Help Fügt einen Benutzernamen als Mitglied einer Rolle auf Serverebene hinzu. Veraltet. Verwenden Sie stattdessen ALTER SERVER ROLE .
sp_dropsrvrolemember (Transact-SQL) Get-Help Entfernt einen SQL Server -Anmeldenamen oder einen Windows-Benutzer bzw. eine -Gruppe aus einer Rolle auf Serverebene. Veraltet. Verwenden Sie stattdessen ALTER SERVER ROLE .

Siehe auch

Rollen auf Datenbankebene
Sicherheitskatalogsichten (Transact-SQL)
Sicherheitsfunktionen (Transact-SQL)
Sichern von SQL Server
GRANT (Berechtigungen für Serverprinzipal) (Transact-SQL)
REVOKE (Berechtigungen für Serverprinzipal) (Transact-SQL)
DENY (Berechtigungen für Serverprinzipal) (Transact-SQL)
Erstellen einer Serverrolle
Azure SQL-Datenbank-Serverrollen für die Berechtigungsverwaltung