Server- und Datenbankrollen in SQL Server (ADO.NET)
Alle SQL Server-Versionen verwenden die rollenbasierte Sicherheit, mit der Sie einer Rolle, also einer ganzen Gruppe von Benutzern, Berechtigungen zuweisen können, statt Berechtigungen individuell für jeden Benutzer einzeln festzulegen. Feste Server- und feste Datenbankrollen besitzen einen festen Satz von ihnen übertragenen Berechtigungen.
Feste Serverrollen
Feste Serverrollen besitzen einen festen Satz von Berechtigungen, die serverweit gültig sind. Sie sind zur Verwaltung von SQL Server gedacht, und die ihnen zugewiesenen Berechtigungen können nicht geändert werden. Anmeldungen können festen Serverrollen zugewiesen sein, ohne dass in einer Datenbank ein Benutzerkonto vorhanden ist.
Sicherheitshinweis |
---|
Die feste Serverrolle sysadmin schließt alle anderen Rollen ein und kennt keine Einschränkungen.Fügen Sie dieser Rolle keine Prinzipale hinzu, außer wenn ihre Vertrauenswürdigkeit sehr hoch ist.Mitglieder der Rolle sysadmin verfügen über unwiderrufliche Administratorberechtigungen für alle Serverdatenbanken und -ressourcen. |
Gehen Sie beim Hinzufügen von Benutzern zu festen Serverrollen mit großer Sorgfalt vor. So können z. B. Benutzer mit der Rolle bulkadmin den Inhalt einer beliebigen lokalen Datei in eine Tabelle einfügen, wodurch die Datenintegrität gefährdet werden könnte. Eine vollständige Liste der festen Serverrollen und Berechtigungen finden Sie in der SQL Server 2005-Onlinedokumentation. Für die festen Serverrollen in SQL Server 2000 gelten dieselben Namen und Berechtigungssätze, sofern sie für SQL Server 2000 zutreffen.
Feste Datenbankrollen
Feste Datenbankrollen besitzen einen vordefinierten Satz von Berechtigungen, mit denen Sie problemlos ganze Berechtigungsgruppen verwalten können. Member der Rolle db_owner können alle Konfigurations- und Wartungsaktivitäten an der Datenbank ausführen.
Weitere Informationen zu den vordefinierten SQL Server-Rollen finden Sie in den folgenden Ressourcen.
Ressource |
Beschreibung |
---|---|
Rollen auf Serverebene und Berechtigungen fester Serverrollen in der SQL Server 2005-Onlinedokumentation |
Beschreibt die in SQL Server 2005 vorhandenen festen Serverrollen und die mit ihnen verknüpften Berechtigungen. |
Rollen auf Datenbankebene und Berechtigungen fester Datenbankrollen in der SQL Server 2005-Onlinedokumentation |
Beschreibt die festen Datenbankrollen und die mit ihnen verknüpften Berechtigungen. |
Hinzufügen eines Members zu einer vordefinierten Rolle in der SQL Server 2000-Onlinedokumentation |
Beschreibt die Berechtigungen, die mit den festen Serverrollen und den festen Datenbankrollen verknüpft sind, und zeigt, wie Sie den Rollen Member hinzufügen können. |
Datenbankrollen und Benutzer
Anmeldungen müssen Datenbankbenutzerkonten zugeordnet werden, damit das Arbeiten mit den Datenbankobjekten funktioniert. Anschließend können den Datenbankrollen Datenbankbenutzer hinzugefügt werden, die alle Berechtigungssätze erben, die mit diesen Rollen verknüpft sind. Seit SQL Server 2005 werden alle Berechtigungen gewährt.
Beim Entwickeln des Sicherheitskonzepts für Ihre Anwendung müssen Sie auch die Rolle public, das Benutzerkonto dbo und das guest-Konto berücksichtigen.
Die Rolle "public"
Die Rolle public ist in jeder Datenbank mit Systemdatenbanken enthalten. Sie kann nicht gelöscht werden, und Sie können ihr weder Benutzer hinzufügen, noch Benutzer daraus entfernen. Die der Rolle public gewährten Berechtigungen werden von allen anderen Benutzern und Rollen geerbt, da sie standardmäßig zur Rolle public gehören. Gewähren Sie der Rolle public nur die Berechtigungen, die auch wirklich alle Benutzer haben sollen.
Das "dbo"-Benutzerkonto
dbo (Database Owner, Datenbankbesitzer) ist ein Benutzerkonto, das implizite Berechtigungen zum Ausführen aller Aktivitäten in der Datenbank besitzt. Member der festen Serverrolle sysadmin werden automatisch dem dbo-Benutzerkonto zugeordnet.
Hinweis |
---|
Mit der Einführung von SQL Server 2005 ist dbo auch der Name eines Schemas, das in Objektbesitz und Trennung von Benutzer und Schema in SQL Server (ADO.NET) näher erläutert wird. |
Das dbo-Benutzerkonto wird häufig mit der festen Datenbankrolle db_owner verwechselt. Der Gültigkeitsbereich von db_owner umfasst eine Datenbank, während serverweit sysadmin gültig ist. Die Zugehörigkeit zur Rolle db_owner verleiht keine dbo-Benutzerrechte.
Das "guest"-Benutzerkonto
Nachdem ein Benutzer authentifiziert und als berechtigt eingestuft wurde, sich bei einer Instanz von SQL Server anzumelden, muss in jeder Datenbank, auf die der Benutzer zugreifen können soll, ein separates Benutzerkonto vorhanden sein. Auf diese Weise wird verhindert, dass Benutzer eine Verbindung mit einer SQL Server-Instanz herstellen und damit auf alle auf einem Server vorhandenen Datenbanken zugreifen können. Wenn in der Datenbank ein guest-Benutzerkonto vorhanden ist, gilt diese Voraussetzung nicht, und für den Datenbankzugriff reicht eine Anmeldung ohne ein Datenbankbenutzerkonto.
Das guest-Konto ist in allen Versionen von SQL Server ein integriertes Konto. In neuen Datenbanken ist es standardmäßig deaktiviert. Wenn es aktiviert ist, können Sie es deaktivieren, indem Sie dessen CONNECT-Berechtigung widerrufen. Führen Sie dazu die Transact-SQL-REVOKE CONNECT FROM GUEST-Anweisung aus. In SQL Server 2000 können Sie das Konto deaktivieren, indem Sie die gespeicherte Transact-SQL-Systemprozedur sp_dropuser oder sp_revokedbaccess ausführen.
Sicherheitshinweis |
---|
Vermeiden Sie die Verwendung des guest-Kontos, denn alle Anmeldungen ohne eigene Datenbankberechtigungen erhalten die Datenbankberechtigungen, die diesem Konto gewährt wurden.Wenn Sie das guest-Konto verwenden müssen, gewähren Sie ihm nur minimale Berechtigungen. |
Weitere Informationen zu SQL Server-Anmeldungen, -Benutzern und -Rollen finden Sie in den folgenden Ressourcen:
Ressource |
Beschreibung |
---|---|
Identität und Zugriffssteuerung in der SQL Server 2008-Onlinedokumentation |
Enthält Links zu Themen, in denen Prinzipale, Rollen, Anmeldeinformationen, sicherungsfähige Elemente und Berechtigungen beschrieben werden. |
Prinzipale in der SQL Server 2005-Onlinedokumentation |
Beschreibt Prinzipale und enthält Links zu Themen, in denen Server- und Datenbankrollen beschrieben werden. |
Erstellen von Sicherheitskonten und Verwalten von Sicherheitskonten in der SQL Server 2000-Onlinedokumentation |
Beschreibt das Erstellen und Verwalten von Anmeldungen, Benutzern und Rollen. |
Siehe auch
Konzepte
Anwendungssicherheitsszenarios in SQL Server (ADO.NET)
Authentifizierung in SQL Server (ADO.NET)
Objektbesitz und Trennung von Benutzer und Schema in SQL Server (ADO.NET)
Autorisierung und Berechtigungen in SQL Server (ADO.NET)