Rollen auf Serverebene

Gilt für: SQL Server Azure 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üheren Versionen wurden neun feste Serverrollen bereitgestellt. Die Berechtigungen, die den festen Serverrollen (außer öffentlich) gewährt werden, 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 unter Berücksichtigung des Prinzips der geringsten Rechte entwickelt wurden und über das Präfix ##MS_ und das Suffix ## verfügen, um sie von anderen regulären benutzerseitig erstellten Prinzipalen und benutzerdefinierten Serverrollen zu unterscheiden. Diese neuen Rollen enthalten Berechtigungen, die für den Serverbereich gelten, aber auch auf einzelne Datenbanken erben können (mit Ausnahme der # #MS_LoginManager##- Serverrolle).

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 sind, muss eine Anmeldung entweder Mitglied der Rolle ##MS_DatabaseConnector## auf Serverebene sein (ab SQL Server 2022 (16.x)), die allen Datenbanken die CONNECT-Berechtigung gewährt, oder ein Benutzerkonto in einzelnen Datenbanken haben. Dies gilt auch für die master Datenbank. Betrachten Sie das folgende Beispiel: Die Rolle ##MS_ServerStateReader## auf Serverebene enthält die Berechtigung VIEW SERVER STATE. Ein Anmeldename, der Mitglied dieser Rolle ist, verfügt über ein Benutzerkonto in den Datenbanken und masterWideWorldImporters. 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 anderen Serverprinzipale hinzufügen.

Feste Rollen auf Serverebene

Hinweis

Diese Rollen auf Serverebene, die vor SQL Server 2022 (16.x) eingeführt wurden, sind in Azure SQL Database oder Azure Synapse Analytics nicht verfügbar. Es gibt spezielle Azure SQL Datenbankserverrollen für die Berechtigungsverwaltung, die den in SQL Server 2022 (16.x) 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. Alternativ können 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.

Die Bulkadmin-Rolle oder ADMINISTER BULK OPERATIONS-Berechtigungen werden für SQL Server für Linux 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 einem Serverprinzipal keine bestimmten Berechtigungen für ein sicherungsfähiges Objekt erteilt oder verweigert wurden, erbt der Benutzer die Berechtigungen, die öffentlich 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 die Mitgliedschaft in öffentlich 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 der von den folgenden Serverrollen bereitgestellten Berechtigungen gelten nicht für Azure Synapse Analytics: processadmin, serveradmin, setupadmin und diskadmin.

Feste Rollen auf Serverebene, die in SQL Server 2022 eingeführt wurden

Die folgende Tabelle enthält zusätzliche feste Rollen auf Serverebene, die mit SQL Server 2022 (16.x) eingeführt werden, und deren 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## wurde in SQL Server 2022 (16.x) eingeführt und sind in Azure SQL Database 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 und ändern. Im Gegensatz zur alten festen Serverrolle securityadmin erlaubt diese Rolle mitgliedern GRANT keine Berechtigungen. Es handelt sich um eine eingeschränktere Rolle, die zur Einhaltung des Prinzips der geringsten Rechte beiträgt.
##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_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 es die ALTER SERVER STATE-Berechtigung , 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. über die BERECHTIGUNG VIEW DATABASE STATE für jede Datenbank verfügen, 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 sind, bzw. über die Berechtigung VIEW DATABASE PERFORMANCE STATE für jede Datenbank verfügen, 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 sind, bzw. über die Berechtigung VIEW DATABASE SECURITY STATE für jede Datenbank verfügen, für die das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Dies ist eine kleine Teilmenge dessen, worauf die ##MS_ServerStateReader##- Serverrolle Zugriff hat, was zur Einhaltung des Prinzips der geringsten Rechte beiträgt.
##MS_DefinitionReader## Mitglieder der festen Serverrolle ##MS_DefinitionReader## können alle Katalogsichten lesen, die von VIEW ANY DEFINITION abgedeckt werden, bzw. verfügen über die VIEW DEFINITION-Berechtigung für jede Datenbank, 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 sind, bzw. über die Berechtigung VIEW PERFORMANCE DEFINITION für jede Datenbank verfügen, 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 Serverrolle ##MS_DefinitionReader## Zugriff hat, auf die 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 die 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
##MS_DatabaseManager## CREATE ANY DATABASE
ALTER ANY DATABASE
ALTER
##MS_ServerStateManager## ALTER SERVER STATE
VIEW SERVER STATE
ANZEIGEN DES SERVERLEISTUNGSSTATUS
ANZEIGEN DES SERVERSICHERHEITSSTATUS
VIEW DATABASE STATE
ANZEIGEN DES DATENBANKLEISTUNGSSTATUS
ANZEIGEN DES DATENBANKSICHERHEITSSTATUS
##MS_ServerStateReader## VIEW SERVER STATE
ANZEIGEN DES SERVERLEISTUNGSSTATUS
ANZEIGEN DES SERVERSICHERHEITSSTATUS
VIEW DATABASE STATE
ANZEIGEN DES DATENBANKLEISTUNGSSTATUS
ANZEIGEN DES DATENBANKSICHERHEITSSTATUS
##MS_ServerPerformanceStateReader ## ANZEIGEN DES SERVERLEISTUNGSSTATUS ANZEIGEN DES DATENBANKLEISTUNGSSTATUS
##MS_ServerSecurityStateReader ## ANZEIGEN DES SERVERSICHERHEITSSTATUS ANZEIGEN DES DATENBANKSICHERHEITSSTATUS
##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 Berechtigungen, die den Legacyserverrollen (SQL Server 2019 und früheren Versionen) zugewiesen sind.
Diagramm: Berechtigungen für feste Serverrollen

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. (Beispielsweise bedeutet CONTROL SERVER keine Mitgliedschaft in der festen Serverrolle sysadmin .) Es ist jedoch manchmal möglich, die Identität zwischen Rollen und gleichwertigen Berechtigungen zu übernehmen. Die meisten DBCC -Befehle und viele Systemprozeduren erfordern die Mitgliedschaft in der festen Serverrolle sysadmin . Eine Liste der 171 gespeicherten Systemprozeduren, die eine Systemadministratormitgliedschaft erfordern, finden Sie im folgenden Beitrag von Andreas Wolter, CONTROL SERVER vs. sysadmin/sa(archivierter Link).

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).

Arbeiten mit 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 .

Weitere Informationen