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