Rollen auf Serverebene

Gilt für:yesSQL Server (alle unterstützten Versionen) YesAzure SQL Managed Instance yesAnalytics 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 sieben zusätzliche Serverrollen, die über das Präfix ##MS_ und das Suffix ## verfügen, um von anderen regulären Benutzerprinzipalen und benutzerdefinierten Serverrollen zu unterscheiden. 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.

Die festen Serverrollen, die nicht mit dem ##MS_ Präfix beginnen, werden für Komfort und Abwärtskompatibilität bereitgestellt. Weisen Sie bei Bedarf 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 "Serverebene " ##MS_DatabaseConnector##sein, die CONNECT-Berechtigungen für alle Datenbanken gewährt oder ein Benutzerkonto in einzelnen Datenbanken besitzen. 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, master und WideWorldImportersdieser Benutzer hat 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 keine anderen Serverprinzipale zur Rolle hinzufügen.

Feste Rollen auf Serverebene

Hinweis

Diese vor SQL Server 2022 eingeführten Serverrollen 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 eingeführten Serverebenenrollen 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-Serverrolle 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.

Die Massenadministratorrolle oder DIE BERECHTIGUNGEN "MASSENVORGÄNGE VERWALTEN" 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 ein Serverprinzipal nicht bestimmte Berechtigungen für ein sicherungsfähiges Objekt erteilt oder verweigert wurde, erbt der Benutzer die Berechtigungen, die für das öffentliche Objekt 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 nicht öffentlich ä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 von den folgenden Serverrollen bereitgestellten Berechtigungen gelten nicht für Azure Synapse Analytics - Processadmin, serveradmin, setupadmin und diskadmin.

In SQL Server 2022 eingeführte Rollen auf Serverebene

In der folgenden Tabelle werden zusätzliche Rollen auf Serverebene angezeigt, 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.

Integrierte Rolle auf Serverebene Beschreibung
##MS_DatabaseConnector ## Mitglieder der Rolle "#MS_DatabaseConnector### " können eine Verbindung mit einer beliebigen Datenbank herstellen, ohne dass ein Benutzerkonto in der Datenbank eine Verbindung herstellen muss.

Um die CONNECT-Berechtigung für eine bestimmte Datenbank zu verweigern, können Benutzer ein übereinstimmenes Benutzerkonto für diese Anmeldung in der Datenbank erstellen und dann dieCONNECT-Berechtigung für den Datenbankbenutzer verweigern. Diese DENY-Berechtigung überschreiben die GRANT CONNECT-Berechtigung , die aus dieser Rolle stammt.
##MS_DatabaseManager ## Mitglieder der Rolle "##MS_DatabaseManager## " können Datenbanken erstellen und löschen. Ein Mitglied der Rolle ##MS_DatabaseManager## , die eine Datenbank erstellt, wird der Besitzer dieser Datenbank, wodurch der Benutzer eine Verbindung mit dieser Datenbank dbo als Benutzer herstellen kann. Der dbo Benutzer verfügt über alle Datenbankberechtigungen in der Datenbank. Mitglieder der Rolle ##MS_DatabaseManager## verfügen nicht unbedingt über die Berechtigung zum Zugriff auf Datenbanken, die sie nicht besitzen.
##MS_DefinitionReader## Mitglieder der Rolle "##MS_DefinitionReader##" können alle Katalogansichten lesen, die von VIEW ANY DEFINITION abgedeckt sind, und verfügt jeweils über DIE VIEW-DEFINITION-Berechtigung für jede Datenbank, auf der das Mitglied dieser Rolle ein Benutzerkonto hat.
##MS_LoginManager ## Mitglieder der Rolle "##MS_LoginManager## Fixed Server" können Anmeldeinformationen erstellen und löschen.
##MS_SecurityDefinitionReader ## Mitglieder der Rolle "##MS_SecurityDefinitionReader## Fixed Server" können alle Katalogansichten lesen, die von VIEW ANY SECURITY DEFINITION abgedeckt sind und jeweils über die BERECHTIGUNG "SICHERHEITSDEFINITION 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_DefinitionReader## 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

Jeder integrierten Rolle auf Serverebene sind bestimmte Berechtigungen zugewiesen. 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 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_DatabaseManager ## CREATE ANY DATABASE
ALTER ANY DATABASE
ALTER
##MS_DefinitionReader## VIEW ANY DATABASE
VIEW ANY DEFINITION
ANZEIGEN EINER BELIEBIGEN SICHERHEITSDEFINITION
VIEW DEFINITION
SICHERHEITSDEFINITION ANZEIGEN
##MS_LoginManager ## CREATE LOGIN
ALTER ANY LOGIN
##MS_SecurityDefinitionReader ## ANZEIGEN EINER BELIEBIGEN SICHERHEITSDEFINITION SICHERHEITSDEFINITION 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 Grafik 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 bedeutet keine Mitgliedschaft in der Rolle "sysadmin fixed server".) Es ist jedoch manchmal möglich, zwischen Rollen und gleichwertigen Berechtigungen zu imitieren. 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 (Datenbank-Engine) 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