Rollen auf Datenbankebene
Um die Berechtigungen in Ihren Datenbanken einfach zu verwalten, stellt SQL Server mehrere Rollen bereit, bei denen es sich um Sicherheitsprinzipale handelt, die andere Prinzipale gruppieren. Sie sind wie Gruppen im Microsoft Windows-Betriebssystem. Der Geltungsbereich der Berechtigungen von Rollen auf Datenbankebene erstreckt sich auf die gesamte Datenbank.
Es gibt zwei Arten von Rollen auf Datenbankebene in SQL Server: feste Datenbankrollen, die in der Datenbank vordefiniert sind, und flexible Datenbankrollen, die Sie erstellen können.
Feste Datenbankrollen werden auf der Datenbankebene definiert und sind in jeder Datenbank vorhanden. Mitglieder der Datenbankrolle db_owner können die Mitgliedschaft von festen Datenbankrollen ändern. In der msdb-Datenbank gibt es auch einige feste Datenbankrollen für spezielle Zwecke.
Sie können in Rollen auf Datenbankebene jedes Datenbankkonto und andere SQL Server -Rollen hinzufügen. Jedes Mitglied einer festen Datenbankrolle kann der gleichen Rolle andere Anmeldenamen hinzufügen.
Wichtig
Fügen Sie keine flexiblen Datenbankrollen als Mitglieder fester Rollen hinzu. Dies könnte zu einer unbeabsichtigten Ausweitung von Privilegien führen.
In der folgenden Tabelle werden die festen Datenbankrollen und ihre Möglichkeiten aufgeführt. Diese Rollen sind in allen Datenbanken vorhanden.
Rollenname auf Datenbankebene | BESCHREIBUNG |
---|---|
db_owner | Mitglieder der festen Datenbankrolle db_owner können alle Aktivitäten zur Konfiguration und Wartung an der Datenbank ausführen und können die Datenbank auch löschen. |
db_securityadmin | Mitglieder der festen Datenbankrolle db_securityadmin können die Rollenmitgliedschaft ändern und Berechtigungen verwalten. Das Hinzufügen von Prinzipalen zu dieser Rolle könnte zu einer unbeabsichtigten Ausweitung von Privilegien führen. |
db_accessadmin | Mitglieder der festen Datenbankrolle db_accessadmin können den Zugriff auf die Datenbank für Windows-Anmeldungen, Windows-Gruppen und SQL Server -Anmeldungen hinzufügen oder entfernen. |
db_backupoperator | Mitglieder der festen Datenbankrolle db_backupoperator können eine Sicherung der Datenbank durchführen. |
db_ddladmin | Mitglieder der festen Datenbankrolle db_ddladmin können in einer Datenbank sämtliche DDL-Befehle (Data Definition Language) ausführen. |
db_datawriter | Mitglieder der festen Datenbankrolle db_datawriter können Daten in allen Benutzertabellen hinzufügen, löschen oder ändern. |
db_datareader | Mitglieder der festen Datenbankrolle db_datareader können alle Daten aller Benutzertabellen lesen. |
db_denydatawriter | Mitglieder der festen Datenbankrolle db_denydatareader können keine Daten in den Benutzertabellen in einer Datenbank hinzufügen, ändern oder löschen. |
db_denydatareader | Mitglieder der festen Datenbankrolle db_denydatareader können keine Daten in den Benutzertabellen in einer Datenbank lesen. |
msdb-Rollen
Die msdb-Datenbank enthält die in der folgenden Tabelle aufgeführten Rollen für spezielle Zwecke.
Name der msdb-Rolle | BESCHREIBUNG |
---|---|
db_ssisadmin db_ssisoperator db_ssisltduser |
Mitglieder dieser Datenbankrollen können SSISverwalten und verwenden. Instanzen von SQL 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 SSIS benannt wurde. Weitere Informationen finden Sie unter Integration Services-Rollen (SSIS-Dienst). |
dc_admin dc_operator dc_proxy |
Mitglieder dieser Datenbankrollen können den Datensammler verwalten und verwenden. Weitere Informationen finden Sie unter Data Collection. |
PolicyAdministratorRole | Mitglieder der Datenbankrolle db_PolicyAdministratorRole können alle Aktivitäten zur Konfiguration und Wartung für Richtlinien und Bedingungen der richtlinienbasierten Verwaltung ausführen. Weitere Informationen finden Sie unter Verwalten von Servern mit der richtlinienbasierten Verwaltung. |
ServerGroupAdministratorRole ServerGroupReaderRole |
Mitglieder dieser Datenbankrollen können registrierte Servergruppen verwalten und verwenden. |
dbm_monitor | Wird in der msdb Datenbank erstellt, wenn die erste Datenbank im Datenbankspiegelungsmonitor registriert wird. Die dbm_monitor -Rolle hat keine Mitglieder, bis ein Systemadministrator der Rolle Benutzer zuweist. |
Wichtig
Mitglieder der db_ssisadmin-Rolle und der dc_admin-Rolle können Ihre Berechtigungen möglicherweise auf sysadmin erhöhen. Diese Ausweitung von Berechtigungen ist möglich, da diese Rollen Integration Services -Pakete ändern können und Integration Services -Pakete von SQL Server mithilfe des sysadmin-Sicherheitskontexts des SQL Server -Agents ausgeführt werden können. Konfigurieren Sie als Schutz vor dieser Ausweitung von Berechtigungen beim Ausführen von Wartungsplänen, Datensammlungssätzen und anderen Integration Services -Paketen Aufträge des SQL Server -Agents, die Pakete ausführen, für die Verwendung eines Proxykontos mit einschränkten Berechtigungen, oder fügen Sie der db_ssisadmin-Rolle und der dc_admin-Rolle nur sysadmin-Mitglieder hinzu.
Arbeiten mit Rollen auf Datenbankebene
In der folgenden Tabelle werden die Befehle, Sichten und Funktionen zum Arbeiten mit Rollen auf Datenbankebene erklärt.
Funktion | type | BESCHREIBUNG |
---|---|---|
sp_helpdbfixedrole (Transact-SQL) | Metadaten | Gibt eine Liste der festen Datenbankrollen zurück. |
sp_dbfixedrolepermission (Transact-SQL) | Metadaten | Zeigt die Berechtigungen einer festen Datenbankrolle an. |
sp_helprole (Transact-SQL) | Metadaten | Gibt Informationen zu den Rollen in der aktuellen Datenbank zurück. |
sp_helprolemember (Transact-SQL) | Metadaten | Gibt Informationen zu den Mitgliedern einer Rolle in der aktuellen Datenbank zurück. |
sys.database_role_members (Transact-SQL) | Metadaten | Gibt eine Zeile für jedes Mitglied jeder Datenbankrolle zurück. |
IS_MEMBER (Transact-SQL) | Metadaten | Zeigt an, ob der aktuelle Benutzer ein Mitglied der angegebenen Microsoft Windows-Gruppe oder der Microsoft SQL Server-Datenbankrolle ist. |
CREATE ROLE (Transact-SQL) | Get-Help | Erstellt eine neue Datenbankrolle in der aktuellen Datenbank. |
ALTER ROLE (Transact-SQL) | Befehl | Ändert den Namen einer Datenbankrolle. |
DROP ROLE (Transact-SQL) | Get-Help | Entfernt eine Rolle aus der Datenbank. |
sp_addrole (Transact-SQL) | Get-Help | Erstellt eine neue Datenbankrolle in der aktuellen Datenbank. |
sp_droprole (Transact-SQL) | Get-Help | Entfernt eine Datenbankrolle aus der aktuellen Datenbank. |
sp_addrolemember (Transact-SQL) | Get-Help | Fügt einer Datenbankrolle in der aktuellen Datenbank einen Datenbankbenutzer, eine Datenbankrolle, einen Windows-Anmeldenamen oder eine Windows-Gruppe hinzu. |
sp_droprolemember (Transact-SQL) | Get-Help | Entfernt ein Sicherheitskonto aus einer SQL Serverrolle in der aktuellen Datenbank. |
Datenbankrolle public
Jeder Datenbankbenutzer gehört der Datenbankrolle public an. 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.
Verwandte Inhalte
Sicherheitskatalogsichten (Transact-SQL)
Gespeicherte Sicherheitsprozeduren (Transact-SQL)