Rollen auf Serverebene

Gilt für:SQL ServerAzure SQL Managed InstanceAnalytics 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ühere Versionen stellten neun feste Serverrollen bereit. Die den festen Serverrollen (außer public) erteilten Berechtigungen 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. SQL Server 2022 (16.x) enthält 10 zusätzliche Serverrollen, die speziell für das Prinzip der geringsten Rechte entwickelt wurden, die das Präfix ##MS_ und das Suffix ## aufweisen, um sie von anderen regulären, vom Benutzer erstellten Prinzipalen und benutzerdefinierten Serverrollen zu unterscheiden. Diese neuen Rollen enthalten Berechtigungen, die im Serverbereich gelten, aber auch bis auf einzelne Datenbanken vererbt werden können (mit Ausnahme der Serverrolle ##MS_LoginManager##).

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 genutzt werden können, muss eine Anmeldung entweder Mitglied der ##MS_DatabaseConnector##-Rolle (beginnend mit SQL Server 2022 (16.x)) auf Serverebene sein, die die Berechtigung CONNECT für alle Datenbanken gewährt, oder über ein Benutzerkonto in den 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. Eine Anmeldung, die Mitglied dieser Rolle ist, verfügt über ein Benutzerkonto in den Datenbanken master und WideWorldImporters. Dieser Benutzer verfügt dann auch über die Berechtigung VIEW DATABASE STATE in diesen beiden Datenbanken durch Vererbung.

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 benutzerdefinierter Serverrollen können der Rolle keine weiteren Serverprinzipale hinzufügen.

Feste Rollen auf Serverebene

Hinweis

Diese vor SQL Server 2022 (16.x) eingeführten Rollen auf Serverebene sind in Azure SQL-Datenbank oder Azure Synapse Analytics nicht verfügbar. Es gibt spezielle Azure SQL-Datenbank Serverrollen für die Berechtigungsverwaltung, die den in SQL Server 2022 (16.x) eingeführten Rollen auf Serverebene entsprechen. Weitere Informationen zur 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 die 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. Als Alternative sollten Sie ab SQL Server 2022 (16.x) die neue feste Serverrolle ##MS_LoginManager## verwenden.
processadmin Mitglieder der festen Serverrolle processadmin können Prozesse beenden, die in einer Instanz von SQL Server ausgeführt werden.
setupadmin Mitglieder der festen Serverrolle setupadmin können Verbindungsserver 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.

SQL Server für Linux unterstützt weder ADMINISTER BULK OPERATIONS-Berechtigungen noch die Rolle bulkadmin. 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.
public Jede SQL Server-Anmeldung gehört der Serverrolle public an. Werden einem Serverprinzipal keine bestimmten Berechtigungen für ein sicherungsfähiges Objekt erteilt oder verweigert, erbt der Benutzer die Berechtigungen, die der Rolle public für dieses Objekt erteilt wurden. Weisen Sie einem Objekt nur dann public-Berechtigungen zu, wenn das Objekt für alle Benutzer verfügbar sein soll. Sie können keine Mitgliedschaft in „public“ ändern.

Hinweis:Public wird anders implementiert als andere Rollen, und Berechtigungen können der öffentlichen festen Serverrolle gewährt, ihr verweigert oder für sie widerrufen werden.

Wichtig

Die meisten Berechtigungen, die über die folgenden Serverrollen gewährt werden, sind nicht auf Azure Synapse Analytics anwendbar: processadmin, serveradmin, setupadmin und diskadmin.

In SQL Server 2022 eingeführte feste Rollen auf Serverebene

Die folgende Tabelle enthält zusätzliche feste Serverrollen auf Serverebene, die mit SQL Server 2022 (16.x) eingeführt werden, und ihre Funktionen.

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 (16.x) eingeführt und sind 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_LoginManager## Mitglieder der festen Serverrolle ##MS_LoginManager## können Anmeldungen erstellen, löschen oder modifizieren. Im Gegensatz zur alten festen Serverrolle securityadmin erlaubt diese Rolle Mitgliedern keine GRANT-Rechte. Es ist eine eingeschränktere Rolle, die dazu beiträgt, das Prinzip der geringsten Rechte einzuhalten.
##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. Diese Serverrolle verfügt über die gleichen Berechtigungen wie die dbcreator-Rolle in SQL Server, aber wir empfehlen, diese neue Rolle vor der früheren zu verwenden, da diese Rolle auch in Azure SQL-Datenbank vorhanden ist und somit bei der Verwendung der gleichen Skripts in verschiedenen Umgebungen hilft.
##MS_ServerStateManager## Mitglieder der festen Serverrolle ##MS_ServerStateManager## verfügen über die gleichen Berechtigungen, die für die Rolle ##MS_ServerStateReader## gelten. Darüber hinaus ist auch die Berechtigung ALTER SERVER STATE vorhanden, die den Zugriff auf mehrere Verwaltungsvorgänge ermöglicht, z. B. DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF().
##MS_ServerStateReader## Mitglieder der festen Serverrolle ##MS_ServerStateReader## können alle dynamischen Verwaltungssichten (Dynamic Management Views, DMVs) und Funktionen lesen, die von VIEW SERVER STATE abgedeckt werden, bzw. haben sie VIEW DATABASE STATE-Berechtigung für alle Datenbanken, für die das Mitglied dieser Rolle über ein Benutzerkonto verfügt.
##MS_ServerPerformanceStateReader## Mitglieder der festen Serverrolle ##MS_ServerPerformanceStateReader## können alle dynamischen Verwaltungssichten (Dynamic Management Views, DMVs) und Funktionen lesen, die von VIEW SERVER PERFORMANCE STATE abgedeckt werden, bzw. haben VIEW DATABASE PERFORMANCE STATE-Berechtigung für alle Datenbanken, für die das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Dies ist eine Teilmenge dessen, worauf die ##MS_ServerStateReader##-Serverrolle Zugriff hat, wodurch das Prinzip der geringsten Rechte eingehalten werden kann.
##MS_ServerSecurityStateReader## Mitglieder der festen Serverrolle ##MS_ServerSecurityStateReader## können alle dynamischen Verwaltungssichten (Dynamic Management Views, DMVs) und Funktionen lesen, die von VIEW SERVER SECURITY STATE abgedeckt werden, bzw. haben VIEW DATABASE SECURITY STATE-Berechtigung für alle Datenbanken, für die das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Dies ist eine kleine Teilmenge dessen, auf was die Serverrolle ##MS_ServerStateReader## Zugriff hat, was dazu beiträgt, das Prinzip der geringsten Rechte einzuhalten.
##MS_DefinitionReader## Mitglieder der festen Serverrolle ##MS_DefinitionReader## können alle Katalogsichten lesen, die von VIEW ANY DEFINITION abgedeckt werden, bzw. haben VIEW DEFINITION-Berechtigung für alle Datenbanken, für die das Mitglied dieser Rolle über ein Benutzerkonto verfügt.
##MS_PerformanceDefinitionReader## Mitglieder der festen Serverrolle ##MS_PerformanceDefinitionReader## können alle Katalogsichten lesen, die von VIEW ANY PERFORMANCE DEFINITION abgedeckt werden, bzw. haben VIEW PERFORMANCE DEFINITION-Zugriff für alle Datenbanken, für die das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Dies ist eine Teilmenge dessen, worauf 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 ##MS_DefinitionReader##-Serverrolle Zugriff hat, wodurch das Prinzip der geringsten Rechte eingehalten werden kann.

Berechtigungen von festen Serverrollen

Jede feste Serverrolle besitzt bestimmte Berechtigungen.

Berechtigungen neuer fester Serverrollen in SQL Server 2022

In der folgenden Tabelle sind die Berechtigungen angegeben, die den Rollen auf Serverebene zugewiesen sind. Außerdem werden Berechtigungen auf Datenbankebene angezeigt, die geerbt werden, solange der Benutzer eine Verbindung mit einzelnen Datenbanken herstellen kann.

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

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

Die folgende Grafik zeigt die den alten Serverrollen zugewiesenen Berechtigungen (SQL Server 2019 und frühere Versionen).
Diagramm mit festen Serverrollenberechtigungen.

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 nicht die Mitgliedschaft in der festen Serverrolle sysadmin.) Es ist jedoch manchmal möglich, die Identität zwischen Rollen und entsprechenden Berechtigungen zu wechseln. Die meisten DBCC -Befehle und viele Systemprozeduren erfordern die Mitgliedschaft in der festen Serverrolle sysadmin .

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 (Datenbank-Engine) und sys.fn_builtin_permissions (Transact-SQL).

Verwenden Sie 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 Serverrolle 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 .

Rollen, die für SQL Server spezifisch sind, die von Azure Arc aktiviert sind

Bei der Installation der Azure-Erweiterung für SQL Server, macht die Installation Folgendes:

  1. Erstellt eine Serverebenenrolle: SQLArcExtensionServerRole
  2. Erstellt eine Rolle auf Datenbankebene: SQLArcExtensionUserRole
  3. Fügt jeder Rolle ein NT AUTHORITY\SYSTEM-Konto hinzu
  4. Ordnet NT AUTHORITY\SYSTEM auf Datenbankebene für jede Datenbank zu
  5. Gewährt Mindestberechtigungen für die aktivierten Features.

Darüber hinaus widerruft die Azure-Erweiterung für SQL Server für diese Rollen, wenn sie für bestimmte Features nicht mehr benötigt werden, Berechtigungen.

Eine geplante Windows-Aufgabe wird stündlich ausgeführt. Sie gewährt oder widerruft Berechtigungen in SQL Server, wenn Folgendes erkannt wird:

  • Eine neue SQL Server-Instanz wird auf dem Host installiert.
  • Es wird eine neue Datenbank erstellt.
  • Eine Funktion ist aktiviert oder deaktiviert.

Ausführliche Informationen hierzu erhalten Sie unter Konfigurieren von Windows-Dienstkonten und -Berechtigungen für die Azure-Erweiterung für SQL Server.

Wenn Sie die Azure-Erweiterung für SQL Server deinstallieren, werden die Rollen auf Server- und Datenbankebene entfernt.

Überprüfen Sie Berechtigungen in Bezug auf Berechtigungen.