Rollen auf DatenbankebeneDatabase-Level Roles

GILT FÜR: jaSQL Server jaAzure SQL-DatenbankjaAzure SQL Data Warehouse jaParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Zur einfachen Verwaltung der Berechtigungen für Ihre Datenbanken stellt SQL ServerSQL Server mehrere Rollen zur Verfügung. Dies sind Sicherheitsprinzipale, die andere Prinzipale gruppieren.To easily manage the permissions in your databases, SQL ServerSQL Server provides several roles which are security principals that group other principals. Sie entsprechen den Gruppen im MicrosoftMicrosoft Windows-Betriebssystem.They are like groups in the MicrosoftMicrosoft Windows operating system. Der Geltungsbereich der Berechtigungen von Rollen auf Datenbankebene erstreckt sich auf die gesamte Datenbank.Database-level roles are database-wide in their permissions scope.

Zum Hinzufügen und Entfernen von Benutzern zu oder aus einer Datenbankrolle verwenden Sie die Optionen ADD MEMBER und DROP MEMBER der ALTER ROLE -Anweisung.To add and remove users to a database role, use the ADD MEMBER and DROP MEMBER options of the ALTER ROLE statement. Parallel Data WarehouseParallel Data Warehouse unterstützt diese Verwendung von ALTER ROLEnicht.does not support this use of ALTER ROLE. Verwenden Sie stattdessen die älteren Prozeduren sp_addrolemember und sp_droprolemember .Use the older sp_addrolemember and sp_droprolemember procedures instead.

Es gibt zwei Typen von Rollen auf Datenbankebene: feste Datenbankrollen , die in der Datenbank vordefiniert sind, und benutzerdefinierte Datenbankrollen , die Sie erstellen können.There are two types of database-level roles: fixed-database roles that are predefined in the database and user-defined database roles that you can create.

Feste Datenbankrollen werden auf der Datenbankebene definiert und sind in jeder Datenbank vorhanden.Fixed-database roles are defined at the database level and exist in each database. Mitglieder der Datenbankrolle db_owner können die Mitgliedschaft von festen Datenbankrollen ändern.Members of the db_owner database role can manage fixed-database role membership. In der msdb-Datenbank gibt es auch einige Datenbankrollen für spezielle Zwecke.There are also some special-purpose database roles in the msdb database.

Sie können in Rollen auf Datenbankebene jedes Datenbankkonto und andere SQL ServerSQL Server -Rollen hinzufügen.You can add any database account and other SQL ServerSQL Server roles into database-level roles. Jedes Mitglied einer festen Datenbankrolle kann der betreffenden Rolle weitere Benutzer hinzufügen.Each member of a fixed-database role can add other users to that same role.

Tipp

Fügen Sie keine benutzerdefinierten Datenbankrollen als Mitglieder fester Rollen hinzu.Do not add user-defined database roles as members of fixed roles. Dies könnte zu einer unbeabsichtigten Ausweitung von Privilegien führen.This could enable unintended privilege escalation.

Die Berechtigungen von benutzerdefinierten Datenbankrollen können mithilfe der Anweisungen GRANT, DENY und REVOKE angepasst werden.The permissions of user-defined database roles can be customized by using the GRANT, DENY, and REVOKE statements. Weitere Informationen finden Sie unter Berechtigungen (Datenbank-Engine).For more information, see Permissions (Database Engine).

Eine Liste aller Berechtigungen finden Sie auf dem Poster Database Engine Permissions (Berechtigungen im Datenbankmodul) .For a list of all the permissions, see the Database Engine Permissions poster. (Datenbankrollen können keine Berechtigungen auf Serverebene erteilt werden.(Server-level permissions cannot be granted to database roles. Anmeldungen und andere Prinzipale auf Serverebene (wie etwa Serverrollen) können Datenbankrollen nicht hinzugefügt werden.Logins and other server-level principals (such as server roles) cannot be added to database roles. Verwenden Sie für Sicherheit auf Serverebene in SQL ServerSQL Serverstattdessen Serverrollen .For server-level security in SQL ServerSQL Server, use server roles instead. Berechtigungen auf Serverebene können nicht mithilfe von Rollen in SQL-DatenbankSQL Database und SQL Data WarehouseSQL Data Warehouseerteilt werden.)Server-level permissions cannot be granted through roles in SQL-DatenbankSQL Database and SQL Data WarehouseSQL Data Warehouse.)

feste DatenbankrollenFixed-Database Roles

In der folgenden Tabelle sind die festen Datenbankrollen und ihre Möglichkeiten aufgeführt.The following table shows the fixed-database roles and their capabilities. Diese Rollen sind in allen Datenbanken vorhanden.These roles exist in all databases. Außer bei der Datenbankrolle public können die den festen Datenbankrollen zugewiesenen Berechtigungen nicht geändert werden.Except for the public database role, the permissions assigned to the fixed-database roles cannot be changed.

Name der festen DatenbankrolleFixed-Database role name und BeschreibungDescription
db_ownerdb_owner Mitglieder der festen Datenbankrolle db_owner können alle Aktivitäten zur Konfiguration und Wartung an der Datenbank ausführen und die Datenbank in SQL ServerSQL Serverauch löschen.Members of the db_owner fixed database role can perform all configuration and maintenance activities on the database, and can also drop the database in SQL ServerSQL Server. (In SQL-DatenbankSQL Database und SQL Data WarehouseSQL Data Warehousesind für einige Wartungsaktivitäten Berechtigungen auf Serverebene erforderlich; sie können von db_ownersnicht ausgeführt werden.)(In SQL-DatenbankSQL Database and SQL Data WarehouseSQL Data Warehouse, some maintenance activities require server-level permissions and cannot be performed by db_owners.)
db_securityadmindb_securityadmin Mitglieder der festen Datenbankrolle db_securityadmin können die Rollenmitgliedschaft ändern und Berechtigungen verwalten.Members of the db_securityadmin fixed database role can modify role membership and manage permissions. Das Hinzufügen von Prinzipalen zu dieser Rolle könnte zu einer unbeabsichtigten Ausweitung von Privilegien führen.Adding principals to this role could enable unintended privilege escalation.
db_accessadmindb_accessadmin Mitglieder der festen Datenbankrolle db_accessadmin können den Zugriff auf die Datenbank für Windows-Anmeldungen, Windows-Gruppen und SQL ServerSQL Server -Anmeldungen hinzufügen oder entfernen.Members of the db_accessadmin fixed database role can add or remove access to the database for Windows logins, Windows groups, and SQL ServerSQL Server logins.
db_backupoperatordb_backupoperator Mitglieder der festen Datenbankrolle db_backupoperator können eine Sicherung der Datenbank durchführen.Members of the db_backupoperator fixed database role can back up the database.
db_ddladmindb_ddladmin Mitglieder der festen Datenbankrolle db_ddladmin können in einer Datenbank sämtliche DDL-Befehle (Data Definition Language) ausführen.Members of the db_ddladmin fixed database role can run any Data Definition Language (DDL) command in a database.
db_datawriterdb_datawriter Mitglieder der festen Datenbankrolle db_datawriter können Daten in allen Benutzertabellen hinzufügen, löschen oder ändern.Members of the db_datawriter fixed database role can add, delete, or change data in all user tables.
db_datareaderdb_datareader Mitglieder der festen Datenbankrolle db_datareader können alle Daten aller Benutzertabellen lesen.Members of the db_datareader fixed database role can read all data from all user tables.
db_denydatawriterdb_denydatawriter Mitglieder der festen Datenbankrolle db_denydatareader können keine Daten in den Benutzertabellen in einer Datenbank hinzufügen, ändern oder löschen.Members of the db_denydatawriter fixed database role cannot add, modify, or delete any data in the user tables within a database.
db_denydatareaderdb_denydatareader Mitglieder der festen Datenbankrolle db_denydatareader können keine Daten in den Benutzertabellen in einer Datenbank lesen.Members of the db_denydatareader fixed database role cannot read any data in the user tables within a database.

Die den festen Datenbankrollen zugewiesenen Berechtigungen können nicht geändert werden.The permissions assigned to the fixed-database roles cannot be changed. Die folgende Abbildung zeigt die den festen Datenbankrollen zugewiesenen Berechtigungen:The following figure shows the permissions assigned to the fixed-database roles:

fixed_database_role_permissions

Besondere Rollen für SQL-DatenbankSQL Database und SQL Data WarehouseSQL Data WarehouseSpecial Roles for SQL-DatenbankSQL Database and SQL Data WarehouseSQL Data Warehouse

Diese Datenbankrollen sind nur in der virtuellen Masterdatenbank vorhanden.These database roles exist only in the virtual master database. Ihre Berechtigungen sind auf Aktionen beschränkt, die auf dem Master ausgeführt werden.Their permissions are restricted to actions performed in master. Nur Datenbankbenutzer im Master können diesen Rollen hinzugefügt werden.Only database users in master can be added to these roles. Diesen Rollen können keine Anmeldungen hinzugefügt werden, jedoch können Benutzer auf der Grundlage von Anmeldungen erstellt werden, und diese Benutzer können den Rollen dann hinzugefügt werden.Logins cannot be added to these roles, but users can be created based on logins and then those users can be added to the roles. Auch eigenständige Datenbankbenutzer im Master können diesen Rollen hinzugefügt werden.Contained database users in master, can also be added to these roles.

RollennameRole name und BeschreibungDescription
dbmanagerdbmanager Kann Datenbanken erstellen und löschen.Can create and delete databases. Ein Mitglied der dbmanager-Rolle, das eine Datenbank erstellt, wird zum Besitzer der betreffenden Datenbank, wodurch es diesem Benutzer möglich wird, eine Verbindung mit der Datenbank als dbo-Benutzer herzustellen.A member of the dbmanager role that creates a database, becomes the owner of that databasee which allows that user to connect to that database as the dbo user. Der dbo-Benutzer verfügt über alle Datenbankberechtigungen in der Datenbank.The dbo user has all database permissions in the database. Mitglieder der dbmanager-Rolle haben nicht unbedingt die Berechtigung zum Zugriff auf Datenbanken, die sie nicht besitzen.Members of the dbmanager role do not necessarily have permission to access databases that they do not own.
loginmanagerloginmanager Kann Anmeldungen in der virtuellen Masterdatenbank erstellen und löschen.Can create and delete logins in the virtual master database.

Hinweis

Der Prinzipal auf Serverebene und der Azure Active Directory-Administrator (falls konfiguriert) besitzen alle Berechtigungen in SQL-DatenbankSQL Database und SQL Data WarehouseSQL Data Warehouse , ohne dazu Mitglieder irgendwelcher Rollen sein zu müssen.The server-level principal and the Azure Active Directory Administrator (if configured) have all permissions in the SQL-DatenbankSQL Database and SQL Data WarehouseSQL Data Warehouse without needing to be members of any roles. Weitere Informationen finden Sie unter SQL-Datenbank-Authentifizierung und -Autorisierung: Gewähren von Zugriff.For more information, see SQL Database Authentication and Authorization: Granting Access.

msdb-Rollenmsdb Roles

Die msdb-Datenbank enthält die in der folgenden Tabelle aufgeführten Rollen für spezielle Zwecke.The msdb database contains the special-purpose roles that are shown in the following table.

Name der msdb-Rollemsdb role name und BeschreibungDescription
db_ssisadmindb_ssisadmin

db_ssisoperatordb_ssisoperator

db_ssisltduserdb_ssisltduser
Mitglieder dieser Datenbankrollen können SSISSSISverwalten und verwenden.Members of these database roles can administer and use SSISSSIS. Instanzen von SQL ServerSQL Server, die von einer früheren Version aktualisiert wurden, enthalten möglicherweise eine ältere Version der Rolle, die mit Data Transformation Services (DTS) und nicht mit SSISSSIS benannt wurde.Instances of SQL ServerSQL Server that are upgraded from an earlier version might contain an older version of the role that was named using Data Transformation Services (DTS) instead of SSISSSIS. Weitere Informationen finden Sie unter Integration Services Roles (SSIS Service) (Integration Services-Rollen [SSIS-Dienst]).For more information, see Integration Services Roles (SSIS Service).
dc_admindc_admin

dc_operatordc_operator

dc_proxydc_proxy
Mitglieder dieser Datenbankrollen können den Datensammler verwalten und verwenden.Members of these database roles can administer and use the data collector. Weitere Informationen finden Sie unter Data Collection.For more information, see Data Collection.
PolicyAdministratorRolePolicyAdministratorRole Mitglieder der Datenbankrolle db_PolicyAdministratorRole können alle Aktivitäten zur Konfiguration und Wartung für Richtlinien und Bedingungen der richtlinienbasierten Verwaltung ausführen.Members of the db_ PolicyAdministratorRole database role can perform all configuration and maintenance activities on Policy-Based Management policies and conditions. Weitere Informationen finden Sie unter Verwalten von Servern mit der richtlinienbasierten Verwaltung.For more information, see Administer Servers by Using Policy-Based Management.
ServerGroupAdministratorRoleServerGroupAdministratorRole

ServerGroupReaderRoleServerGroupReaderRole
Mitglieder dieser Datenbankrollen können registrierte Servergruppen verwalten und verwenden.Members of these database roles can administer and use registered server groups.
dbm_monitordbm_monitor Wird in der msdb -Datenbank erstellt, wenn die erste Datenbank im Datenbankspiegelungs-Monitor registriert wird.Created in the msdb database when the first database is registered in Database Mirroring Monitor. Die dbm_monitor -Rolle hat keine Mitglieder, bis ein Systemadministrator der Rolle Benutzer zuweist.The dbm_monitor role has no members until a system administrator assigns users to the role.

Wichtig

Mitglieder der db_ssisadmin -Rolle und der dc_admin -Rolle können Ihre Berechtigungen möglicherweise auf sysadmin erhöhen.Members of the db_ssisadmin role and the dc_admin role may be able to elevate their privileges to sysadmin. Diese Ausweitung von Berechtigungen ist möglich, da diese Rollen Integration ServicesIntegration Services -Pakete ändern können und Integration ServicesIntegration Services -Pakete von SQL ServerSQL Server mithilfe des sysadmin-Sicherheitskontexts des SQL ServerSQL Server -Agents ausgeführt werden können.This elevation of privilege can occur because these roles can modify Integration ServicesIntegration Services packages and Integration ServicesIntegration Services packages can be executed by SQL ServerSQL Server using the sysadmin security context of SQL ServerSQL Server Agent. Konfigurieren Sie als Schutz vor dieser Ausweitung von Berechtigungen beim Ausführen von Wartungsplänen, Datensammlungssätzen und anderen Integration ServicesIntegration Services -Paketen Aufträge des SQL ServerSQL Server -Agents, die Pakete ausführen, für die Verwendung eines Proxykontos mit eingeschränkten Berechtigungen, oder fügen Sie der db_ssisadmin -Rolle und der dc_admin -Rolle nur sysadmin -Mitglieder hinzu.To guard against this elevation of privilege when running maintenance plans, data collection sets, and other Integration ServicesIntegration Services packages, configure SQL ServerSQL Server Agent jobs that run packages to use a proxy account with limited privileges or only add sysadmin members to the db_ssisadmin and dc_admin roles.

Arbeiten mit R ServicesWorking with R Services

Gilt für: SQL Server ab SQL Server 2017 (14.x)SQL Server 2017 (14.x)Applies to: SQL Server starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)

Wenn R Services installiert wird, stehen zusätzliche Datenbankrollen für das Verwalten von Paketen zur Verfügung.When R Services is installed, additional database roles are available for managing packages. Weitere Informationen finden Sie unter R-Paketverwaltung für SQL Server.For more information, see R Package management for SQL Server.

RollennameRole name und BeschreibungDescription
rpkgs-usersrpkgs-users Ermöglicht Benutzern das Verwenden aller freigegebenen Pakete, die von Mitgliedern der rpkgs-shared-Rolle installiert wurden.Allows users to use any shared packages that were installed by members of the rpkgs-shared role.
rpkgs-privaterpkgs-private Bietet Zugriff auf freigegebene Pakete mit den gleichen Berechtigungen wie die rpkgs-users-Rolle.Provides access to shared packages with the same permissions as the rpkgs-users role. Mitglieder dieser Rolle können darüber hinaus Pakete mit privatem Geltungsbereich installieren, entfernen und verwenden.Members of this role can also install, remove and use privately scoped packages.
rpkgs-sharedrpkgs-shared Bietet die gleichen Berechtigungen wie die Rolle rpkgs-private.Provides the same permissions as the rpkgs-private role. Benutzer, die Mitglied dieser Rolle sind, können ebenfalls freigegebene Pakete installieren oder entfernen.Users who are members of this role can also install or remove shared packages.

Arbeiten mit Rollen auf DatenbankebeneWorking with Database-Level Roles

In der folgenden Tabelle werden die Befehle, Sichten und Funktionen zum Arbeiten mit Rollen auf Datenbankebene erklärt.The following table explains the commands, views and functions for working with database-level roles.

FunktionFeature TypType und BeschreibungDescription
sp_helpdbfixedrole (Transact-SQL)sp_helpdbfixedrole (Transact-SQL) MetadatenMetadata Gibt eine Liste der festen Datenbankrollen zurück.Returns a list of the fixed database roles.
sp_dbfixedrolepermission (Transact-SQL)sp_dbfixedrolepermission (Transact-SQL) MetadatenMetadata Zeigt die Berechtigungen einer festen Datenbankrolle an.Displays the permissions of a fixed database role.
sp_helprole (Transact-SQL)sp_helprole (Transact-SQL) MetadatenMetadata Gibt Informationen zu den Rollen in der aktuellen Datenbank zurück.Returns information about the roles in the current database.
sp_helprolemember (Transact-SQL)sp_helprolemember (Transact-SQL) MetadatenMetadata Gibt Informationen zu den Mitgliedern einer Rolle in der aktuellen Datenbank zurück.Returns information about the members of a role in the current database.
sys.database_role_members (Transact-SQL)sys.database_role_members (Transact-SQL) MetadatenMetadata Gibt eine Zeile für jedes Mitglied jeder Datenbankrolle zurück.Returns one row for each member of each database role.
IS_MEMBER (Transact-SQL)IS_MEMBER (Transact-SQL) MetadatenMetadata Zeigt an, ob der aktuelle Benutzer ein Mitglied der angegebenen Microsoft Windows-Gruppe oder der Microsoft SQL Server-Datenbankrolle ist.Indicates whether the current user is a member of the specified Microsoft Windows group or Microsoft SQL Server database role.
CREATE ROLE (Transact-SQL)CREATE ROLE (Transact-SQL) BefehlCommand Erstellt eine neue Datenbankrolle in der aktuellen Datenbank.Creates a new database role in the current database.
ALTER ROLE (Transact-SQL)ALTER ROLE (Transact-SQL) BefehlCommand Ändert den Namen oder die Mitgliedschaft einer Datenbankrolle .Changes the name or membership of a database role.
DROP ROLE (Transact-SQL)DROP ROLE (Transact-SQL) BefehlCommand Entfernt eine Rolle aus der Datenbank.Removes a role from the database.
sp_addrole (Transact-SQL)sp_addrole (Transact-SQL) BefehlCommand Erstellt eine neue Datenbankrolle in der aktuellen Datenbank.Creates a new database role in the current database.
sp_droprole (Transact-SQL)sp_droprole (Transact-SQL) BefehlCommand Entfernt eine Datenbankrolle aus der aktuellen Datenbank.Removes a database role from the current database.
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL) BefehlCommand Fügt einer Datenbankrolle in der aktuellen Datenbank einen Datenbankbenutzer, eine Datenbankrolle, einen Windows-Anmeldenamen oder eine Windows-Gruppe hinzu.Adds a database user, database role, Windows login, or Windows group to a database role in the current database. Alle Plattformen außer Parallel Data WarehouseParallel Data Warehouse sollten stattdessen ALTER ROLE verwenden.All platforms except Parallel Data WarehouseParallel Data Warehouse should use ALTER ROLE instead.
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL) BefehlCommand Entfernt ein Sicherheitskonto aus einer SQL Serverrolle in der aktuellen Datenbank.Removes a security account from a SQL Server role in the current database. Alle Plattformen außer Parallel Data WarehouseParallel Data Warehouse sollten stattdessen ALTER ROLE verwenden.All platforms except Parallel Data WarehouseParallel Data Warehouse should use ALTER ROLE instead.
GRANTGRANT BerechtigungenPermissions Fügt einer Rolle eine Berechtigung hinzu.Adds permission to a role.
DENYDENY BerechtigungenPermissions Verweigert einer Rolle eine Berechtigung.Denys a permission to a role.
REVOKEREVOKE BerechtigungenPermissions Entfernt eine zuvor erteilte oder verweigerte Berechtigung.Removes a previously granted or denied permissions.

Datenbankrolle publicpublic Database Role

Jeder Datenbankbenutzer gehört der Datenbankrolle public an.Every database user belongs to the public database role. Wenn einem Benutzer keine bestimmten Berechtigungen für ein sicherungsfähiges Objekt erteilt oder verweigert werden, erbt der Benutzer die Berechtigungen, die der Datenbankrolle public für dieses Objekt erteilt wurden.When a user has not been granted or denied specific permissions on a securable object, the user inherits the permissions granted to public on that object. Benutzer können aus der Rolle öffentlich nicht entfernt werden.Database users cannot be removed from the public role.

Sicherheitskatalogsichten (Transact-SQL)Security Catalog Views (Transact-SQL)

Gespeicherte Sicherheitsprozeduren (Transact-SQL)Security Stored Procedures (Transact-SQL)

Sicherheitsfunktionen (Transact-SQL)Security Functions (Transact-SQL)

Sichern von SQL ServerSecuring SQL Server

sp_helprotect (Transact-SQL)sp_helprotect (Transact-SQL)