Rollen auf Serverebene
Gilt für:SQL Server
Azure SQL Managed Instance
Analytics 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 (15.x) und frühere Versionen haben neun feste Serverrollen bereitgestellt. 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 konzipiert sind, die das Präfix ##MS_
und das Suffix ##
enthalten, um sie von anderen regulären, vom Benutzer erstellten Prinzipale und benutzerdefinierten Serverrollen zu unterscheiden. Diese neuen Rollen enthalten Berechtigungen, die auf Serverebene gelten, können aber auch auf einzelne Datenbanken vererbt werden (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 auf Serverebene ##MS_DatabaseConnector##
sein (beginnend mit SQL Server 2022 (16.x)), die den CONNECT
Berechtigungen für alle Datenbanken erteilt oder über ein Benutzerkonto in einzelnen Datenbanken verfügen. Dies gilt auch für die master
-Datenbank.
Betrachten Sie das folgende Beispiel: Die Rolle auf Serverebene ##MS_ServerStateReader##
hat 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 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
Die auf Serverebene eingeführten Rollen vor SQL Server 2022 (16.x) sind in der "Azure SQL-Datenbank" sowie in "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. Wichtig: Berechtigungen können mitgliedern dieser Rolle nicht verweigert werden. |
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 ).
securityadmin hat außerdem die Möglichkeit Berechtigungen auf Datenbankebene zu GRANT , DENY und REVOKE , sofern sie Zugriff auf eine Datenbank haben.
securityadmin kann 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. Wenn einem Serverprinzipal keine bestimmten Berechtigungen für ein sicherungsfähiges Objekt erteilt oder verweigert werden, erbt der Benutzer die Berechtigungen, die öffentlichen für dieses Objekt gewährt werden. Weisen Sie nur öffentlichen Berechtigungen für jedes Objekt zu, wenn das Objekt für alle Benutzer verfügbar sein soll. Sie können die Mitgliedschaft in öffentlichennicht ändern. Hinweis:öffentliche Rolle wird anders implementiert als andere Rollen, und Berechtigungen können erteilt, verweigert oder von den öffentlichen festen Serverrollen widerrufen werden. |
Wichtig
Die meisten berechtigungen, die von den folgenden Serverrollen bereitgestellt werden, gelten nicht für Azure Synapse Analytics – processadmin, serveradmin, setupadminund diskadmin.
In SQL Server 2022 eingeführte feste Rollen auf Serverebene
Die folgende Tabelle enthält feste Rollen auf Serverebene, die in SQL Server 2022 (16.x) und deren Funktionen eingeführt wurden.
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##
werden in SQL Server 2022 (16.x) eingeführt und sind in der Azure SQL-Datenbank nicht verfügbar.
Feste Rolle auf Serverebene | Beschreibung |
---|---|
##MS_DatabaseConnector## |
Mitglieder der festen Serverrolle ##MS_DatabaseConnector## können eine Verbindung zu jeder Datenbank herstellen, ohne ein Benutzerkonto in der Datenbank zu benötigen.Um die CONNECT Berechtigung für eine bestimmte Datenbank zu verweigern, können Benutzer ein übereinstimmende Benutzerkonto für diese Anmeldung in der Datenbank erstellen und dann die CONNECT Berechtigung für den Datenbankbenutzer DENY . Mit dieser DENY Berechtigung wird die GRANT CONNECT Berechtigung, die aus dieser Rolle stammt, außer Kraft gesetzt. |
##MS_LoginManager## |
Mitglieder der ##MS_LoginManager## festen Serverrolle können Anmeldeinformationen erstellen, löschen und ändern. 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 ##MS_DatabaseManager## festen Serverrolle können Datenbanken erstellen und löschen. Ein Mitglied der rolle ##MS_DatabaseManager## , die eine Datenbank erstellt, wird der Besitzer dieser Datenbank, wodurch dieser Benutzer eine Verbindung mit dieser Datenbank als dbo Benutzer herstellen kann. Der*Die dbo -Benutzer*in verfügt über alle Datenbankberechtigungen in der Datenbank. Mitglieder der Rolle ##MS_DatabaseManager## verfügen nicht unbedingt ü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 statt der früheren Rolle zu verwenden, da diese Rolle auch in Azure SQL-Datenbank verfügbar ist und somit dieselben Skripts in verschiedenen Umgebungen verwendet werden können. |
##MS_ServerStateManager## |
Mitglieder der ##MS_ServerStateManager## festen Serverrolle verfügen über die gleichen Berechtigungen wie die ##MS_ServerStateReader## Rolle. 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() |
##MS_ServerStateReader## |
Mitglieder der festen Serverrolle ##MS_ServerStateReader## können alle von VIEW SERVER STATE abgedeckten dynamischen Verwaltungsansichten (DMVs) und Funktionen lesen und haben jeweils die Berechtigung VIEW DATABASE STATE für jede Datenbank, bei der das Mitglied dieser Rolle über ein Benutzerkonto verfügt. |
##MS_ServerPerformanceStateReader## |
Mitglieder der festen Serverrolle ##MS_ServerPerformanceStateReader## können alle dynamischen Verwaltungsansichten (Dynamic Management Views, DMVs) und Funktionen lesen, die von VIEW SERVER PERFORMANCE STATE abgedeckt werden. Außerdem haben sie VIEW DATABASE PERFORMANCE STATE -Berechtigung für jede Datenbank, auf der sie als Benutzerkonto registriert sind. Teilmenge der Elemente, auf die die ##MS_ServerStateReader## -Serverrolle Zugreifen hat, was dazu beiträgt, das Prinzip der geringsten Rechteeinzuhalten. |
##MS_ServerSecurityStateReader## |
Mitglieder der festen Serverrolle ##MS_ServerSecurityStateReader## können alle dynamischen Verwaltungsansichten (DMVs) und Funktionen lesen, die von VIEW SERVER SECURITY STATE abgedeckt werden. Zudem haben sie die VIEW DATABASE SECURITY STATE -Berechtigung für jede Datenbank, für die sie über ein Benutzerkonto verfügen. Kleine Teilmenge dessen, worauf die ##MS_ServerStateReader## Serverrolle Zugriff hat, was zur Einhaltung des Prinzips der geringsten Rechtebeiträgt. |
##MS_DefinitionReader## |
Mitglieder der festen Serverrolle ##MS_DefinitionReader## können alle Katalogansichten, die unter VIEW ANY DEFINITION fallen, einsehen und haben jeweils die VIEW DEFINITION -Berechtigung für jede Datenbank, in der ein Mitglied dieser Rolle ein Benutzerkonto hat. |
##MS_PerformanceDefinitionReader## |
Mitglieder der ##MS_PerformanceDefinitionReader## festen Serverrolle können alle Katalogansichten lesen, die von VIEW ANY PERFORMANCE DEFINITION abgedeckt werden. Sie verfügen jeweils über VIEW PERFORMANCE DEFINITION Berechtigung für jede Datenbank, bei der das Mitglied dieser Rolle über ein Benutzerkonto verfügt. Teilmenge, auf die die ##MS_DefinitionReader## Serverrolle Zugriff hat. |
##MS_SecurityDefinitionReader## |
Mitglieder der festen Serverrolle ##MS_SecurityDefinitionReader## können alle von VIEW ANY SECURITY DEFINITION abgedeckten Katalogansichten lesen und haben jeweils die VIEW SECURITY DEFINITION -Berechtigung für jede Datenbank, in der das Mitglied dieser Rolle ein Benutzerkonto hat. Kleine Teilmenge, auf die die ##MS_DefinitionReader## Serverrolle Zugriff hat, was hilft, das Prinzip der geringsten Rechteeinzuhalten. |
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 - 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 |
Berechtigungen von Serverrollen für SQL Server 2019 und früher
Die folgende Abbildung zeigt die Berechtigungen, die den älteren Serverrollen (SQL Server 2019 (15.x) und früheren Versionen zugewiesen sind.
Die CONTROL SERVER
Berechtigung ist ähnlich, aber nicht identisch mit der festen sysadmin Serverrolle. Prinzipale mit der CONTROL SERVER
-Berechtigung kann man bestimmte Berechtigungen verweigern. Berücksichtigen Sie aus Sicherheitsperspektive Prinzipale mit CONTROL SERVER
als identisch mit Sysadmin-Mitgliedern, da es mehrere Möglichkeiten gibt, Berechtigungen von CONTROL SERVER
auf vollständigen Sysadmin zu erhöhen. Mehrere 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 (Datenbankmodul) und sys.fn_builtin_permissions.
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 | Metadaten | Gibt eine Liste von Rollen auf Serverebene zurück. |
sp_helpsrvrolemember | Metadaten | Gibt Informationen zu Mitgliedern einer Rolle auf Serverebene zurück. |
sp_srvrolepermission | Metadaten | Zeigt die Berechtigungen einer Rolle auf Serverebene an. |
IS_SRVROLEMEMBER | Metadaten | Gibt an, ob eine SQL Server-Anmeldung Mitglied der angegebenen Serverrolle ist. |
sys.server_role_members | Metadaten | Gibt eine Zeile für jedes Mitglied jeder Rolle auf Serverebene zurück. |
SERVERROLLE ERSTELLEN | Get-Help | Erstellt eine benutzerdefinierte Serverrolle. |
ALTER SERVER ROLE | Get-Help | Ändert die Mitgliedschaft einer Serverrolle oder ändert Namen einer benutzerdefinierten Serverrolle. |
DROP SERVER ROLE | Get-Help | Entfernt eine benutzerdefinierte Serverrolle. |
sp_addsrvrolemember | Get-Help | Fügt einen Benutzernamen als Mitglied einer Rolle auf Serverebene hinzu. Veraltet. Verwenden Sie stattdessen ALTER SERVER ROLE . |
sp_dropsrvrolemember | 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:
Erstellt eine Serverebenenrolle: SQLArcExtensionServerRole
Erstellt eine Rolle auf Datenbankebene: SQLArcExtensionUserRole
Fügt jeder Rolle ein NT AUTHORITY\SYSTEM*-Konto hinzu
Ordnet NT AUTHORITY\SYSTEM* auf Datenbankebene für jede Datenbank zu
Gewährt Mindestberechtigungen für die aktivierten Features.
*Alternativ können Sie SQL Server konfigurieren, der von Azure Arc aktiviert ist, um im Modus mit den geringsten Rechten ausgeführt zu werden (verfügbar in der Vorschau). Einzelheiten finden Sie unter Betreiben von SQL Server, aktiviert durch Azure Arc mit geringsten Rechten (Vorschau).
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.
SqlServerExtensionPermissionProvider
ist eine Windows-Aufgabe. Sie gewährt oder widerruft Berechtigungen in SQL Server, wenn Folgendes erkannt wird:
- Eine neue SQL Server-Instanz wird auf dem Host installiert.
- SQL Server-Instanz wird vom Host deinstalliert.
- Ein Feature auf Instanzebene ist aktiviert oder deaktiviert oder Einstellungen wurden aktualisiert.
- Erweiterungsdienst wird neu gestartet
Hinweis
Vor der Version vom Juli 2024 handelt es sich bei SqlServerExtensionPermissionProvider
um eine geplante Aufgabe. Sie wird stündlich ausgeführt.
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.
Zugehöriger Inhalt
- 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