Freigeben über


SQL Server-Sicherheit

SQL Server-Konten und -Rollen spielen in der Windows Server AppFabric-Sicherheit eine wichtige Rolle. AppFabric verwendet diese SQL Server-Entitäten zum Steuern des Zugriffs auf Speicher und Tabellen, die Daten aus Überwachungsvorgängen sowie auf die Workflowpersistenz bezogene Statuskontrolldaten enthalten. AppFabric stellt keine Tools zur Unterstützung der Verwaltung von Datenbanksicherheit bereit. Zum Erstellen von Konten und Rollen und zum Anzeigen, Bearbeiten und Zuweisen der geeigneten Berechtigungen für Datenbankobjekte sollten Sie die Tools verwenden, die mit der Datenbank installiert werden. Verwenden Sie für SQL Server SQL Server Management Studio.

AppFabric verwendet SQL Server-Anmeldungen und Rollen zum Verwalten des Zugriffs auf Assets wie die Persistenz- und Überwachungsspeicher und gespeicherte Prozeduren. Sicherheitsrichtlinien werden über Berechtigungen für Tabellen und gespeicherte Prozeduren angewendet, die festlegen, wer die Persistenz- und Überwachungsschemas lesen und schreiben sowie administrative Vorgänge hierfür durchführen darf. Jedes Schema wird mit einem eigenen Satz an Sicherheitsrichtlinien geschützt.

SQL Server-Authentifizierungsmodi und AppFabric

SQL Server stellt zwei Methoden für die Sicherung der Authentifizierung für seine AppFabric-Datenbankserver bereit:

  • Windows-Authentifizierung. Diese Methode wird vom standardmäßigen Windows-Authentifizierungsmodus bereitgestellt. Dies ist der sicherste Authentifizierungsmodus für SQL Server. Wenn der Windows-Authentifizierungsmodus konfiguriert ist, verwendet SQL Server die Windows-Sicherheit zum Überprüfen des Kontos und des Kennworts des anfordernden Benutzerkontos anhand des Windows-Betriebssystems.

  • SQL Server-Authentifizierung. Diese Methode wird vom SQL Server-Authentifizierungsmodus bereitgestellt. Sie wird nur aus Gründen der Abwärtskompatibilität für Anwendungen und Benutzer bereitgestellt, die mit einem expliziten Benutzerkonto und Kennwort auf SQL Server zugreifen müssen. Dies ist der Modus mit der geringsten Sicherheit.

Wenn AppFabric mit der SQL Server-Authentifizierung arbeitet, ist die Übergabe von expliziten Benutzerkontonamen und Kennwörtern, die in eine Verbindungszeichenfolge aus einer Konfigurationsdatei eingebettet sind, eine Sicherheitspraxis, die nicht zu empfehlen ist. Es wird dringend empfohlen, SQL Server für die Verwendung des Windows-Authentifizierungsmodus zu konfigurieren und den SQL Server-Authentifizierungsmodus zu vermeiden.

Wenn Sie den SQL Server-Authentifizierungsmodus verwenden müssen oder einen anderen Anbieter als SQL Server verwenden, der das Speichern von Kennwörtern in der Verbindungszeichenfolge erfordert, wird die Verwendung von verschlüsselten Verbindungszeichenfolgen verwendet. AppFabric kann verschlüsselte Abschnitte von Konfigurationsdateien nicht verarbeiten, daher können verschlüsselte Verbindungszeichenfolgen nicht mithilfe der AppFabric-Tools angezeigt oder hinzugefügt werden.

Wenn Sie die Konfigurationsdateien auf einem AppFabric-Computer sichern müssen, indem Sie Teile einer Konfigurationsdatei verschlüsseln, verwenden Sie das ASP.NET IIS-Registrierungstool (Aspnet_regiis.exe). Mit diesem Tool können Sie (mit der Option -pe) alle sicherheitsrelevanten Abschnitte einer Konfigurationsdatei außerhalb der AppFabric-Benutzeroberfläche verschlüsseln. Wenn Sie diese Abschnitte später anzeigen oder ändern müssen, können Sie sie mit der Option -pd entschlüsseln. Nach dem Entschlüsseln können die Abschnitte in den AppFabric-Tools angezeigt werden, Sie können Änderungen vornehmen, die Änderungen in der Konfigurationsdatei speichern und die Abschnitte anschließend wieder mit dem Tool außerhalb von AppFabric verschlüsseln. Weitere Informationen zur Verwendung des ASP.NET IIS-Registrierungstools finden Sie unter ASP.NET IIS-Registrierungstool (Aspnet_regiis.exe) (https://go.microsoft.com/fwlink/?LinkId=169163).

SQL Server-Anmeldungen

Eine SQL Server-Anmeldung setzt ein Benutzerkonto und ein Kennwort für die Anmeldung beim SQL Server-Computer voraus. Sie können dies als das Zugriffsrecht oder die Authentifizierung (in der Windows-Sicherheitsterminologie) betrachten. SQL Server verwendet die integrierte Windows-Authentifizierung zum Identifizieren der Sicherheitsprinzipals, die versuchen, die AppFabric-Datenbankressourcen zu verwalten oder darauf zuzugreifen. Für die Herstellung der Verbindung zu SQL Server mit der integrierten Windows-Authentifizierung müssen Sie die Windows-Identität angeben, unter der die Anwendung ausgeführt wird. Sie müssen darüber hinaus sicherstellen, dass der Identität die geeigneten Zugriffsrechte für die SQL Server-Datenbank gewährt wurden.

Zur Durchführung von Konfigurations- oder betriebsbezogenen Aktionen für die Datenbankschemas oder Daten muss das Anmeldekonto einer SQL Server-Rolle mit den geeigneten Berechtigungen zugeordnet werden. Eine SQL Server-Rolle funktioniert wie eine Windows-Gruppe. Die Mitgliedschaft eines Anmeldekontos bei einer SQL Server-Rolle legt fest, in welchem Umfang dieses Anmeldekonto administrative Aktivitäten und Datenbankvorgänge durchführen darf. Ein Anmeldekonto kann mehr als einer Datenbankrolle angehören.

Die folgenden SQL Server-Anmeldungen werden bei der Installation von AppFabric erstellt.

Anmeldename Windows-Konto Mitgliedschaft in einer Datenbankrolle

AS_Administrators

LOCALHOST\AS_Administrators

  • ASMonitoringDbAdmin

  • ASMonitoringDbReader

  • ASMonitoringDbWriter

  • Öffentlich

  • Microsoft.ApplicationServer.DurableInstancing.WorkflowAdministrators

  • Microsoft.ApplicationServer.DurableInstancing.WorkflowManagementServiceUsers

  • System.Activities.DurableInstancing.InstanceStoreObservers

  • System.Activities.DurableInstancing.WorkflowActivationUsers

AS_Observers

LOCALHOST\AS_Observers

  • ASMonitoringDbReader

  • Öffentlich

  • System.Activities.DurableInstancing.InstanceStoreObservers

IIS_IUSRS

BUILTIN\IIS_IUSRS

  • Öffentlich

  • System.Activities.DurableInstancing.InstanceStoreUsers

SQL Server-Datenbankrollen

In SQL Server gibt es drei Arten von Datenbankrollen: Server, Anwendung und Datenbank. Aus Gründen der Vollständigkeit werden diese hier kurz erörtert. AppFabric nutzt das Datenbankrollenmodell für den größten Teil seiner SQL Server-Sicherheit exklusiv.

  • SQL Server-Rolle „Server“. Eine SQL Server-Rolle „Server“ wird außerhalb der Speicher auf Serverebene definiert. SQL Server-Rollen sind vordefiniert. Ihre Anzahl und ihr Inhalt können daher nicht geändert werden. Ein Beispiel für eine häufig verwendete Serverrolle ist die Rolle sysadmin. Die Mitgliedschaft in dieser Rolle ermöglicht dem Anmeldekonto die vollständige Steuerung aller Datenbankvorgänge und verleiht ihm die Fähigkeit, jeden Vorgang für die SQL Server-Daten in einem beliebigen Speicher durchzuführen. AppFabric verwendet explizit keine Serverrolen in seinem Sicherheitsmodell.

  • SQL Server-Rolle „Anwendung“. Anwendungsrollen unterstützen die eher komplexen und benutzerdefinierten Sicherheitsanforderungen einer bestimmten Anwendung. Ein Speicher kann von mehreren Anwendungen mit der gemeinsamen Anforderung zur Durchsetzung von Sicherheit für die hierin enthaltenen Daten verwendet werden, wenn eine der Anwendungen darauf zugreift. AppFabric verwendet explizit keine Anwendungsrollen in seinem Sicherheitsmodell.

  • SQL Server-Rolle „Datenbank“. AppFabric macht umfänglichen Gebrauch von der Datenbankrolle. Es gibt drei Arten von Datenbankrollen: öffentlich, benutzerdefiniert und fest. Aus Gründen der Vollständigkeit werden diese hier erörtert. AppFabric nutzt das benutzerdefinierte Datenbankrollenmodell für einen großen Teil seiner SQL Server-Sicherheit exklusiv.

    Es gibt drei Arten von SQL Server-Datenbankrollen:

    • Öffentlich. Die öffentliche Datenbankrolle enthält die Standardzugriffsberechtigungen für alle Datenbankbenutzer. Jedes von AppFabric erstellte Anmeldekonto ist ein Mitglieder dieser Rolle.

    • Fest. Wie die SQL Server-„Server“-Rollen (z. B. sysadmin) können feste Datenbankrollen nicht geändert werden. Im Gegensatz zu Serverrollen, die auf der Serverebene angesiedelt sind, gibt es auf der Datenbankebene für jeden Speicher Datenbankrollen. Ein Beispiel für eine feste Datenbankrolle ist db_owner. Sie können einer festen Datenbankrolle kein SQL Server-Anmeldebenutzerkonto hinzufügen oder hieraus entfernen.

    • Benutzerdefiniert. AppFabric erstellt bei der Installation bestimmte leere, benutzerdefinierte Datenbankrollen. Das AppFabric-Installationsprogramm fügt in diese benutzerdefinierten Datenbankrollen nicht explizit irgendwelche Windows-Konten oder SQL Server-Anmeldekonten ein. Stattdessen müssen Sie mit den SQL Server-Verwaltungstools explizit Konten hinzufügen.

AppFabric verwendet SQL Server-Datenbankrollen zum Steuern des Zugriffs auf seine Überwachungs- und Persistenzdatenspeicher. Wenn Sie einen neuen AppFabric-Überwachungs- oder Persistenzdatenspeicher initialisieren, werden bei der Installation mehrere benutzerdefinierte Datenbanksicherheitsrollen erstellt. Die folgende Tabelle zeigt, wie diese Rollen den im vorherigen Abschnitt beschriebenen SQL Server-Anmeldungen zugeordnet werden.

Benutzerdefinierte SQL Server-Rolle Schema Zugeordnete Anmeldungen Rechte

ASMonitoringDbAdmin

Überwachung

AS_Administrators

Schreiben in die Stagingtabelle, Lesen aus Ereignissichten und Aufrufen von gespeicherten Prozeduren zum Bereinigen und Archivieren

ASMonitoringDbReader

Überwachung

AS_Administrators und AS_Observers

Ereignissichten lesen

ASMonitoringDbWriter

Überwachung

AS_Administrators

Schreiben in die Stagingtabelle und Aufrufen des Importvorgangs

Microsoft.ApplicationServer.DurableInstancing.WorkflowAdministrators

Persistenz

AS_Administrators

Steuerungsbefehle in die Befehlswarteschlange des Speichers setzen

System.Activities.DurableInstancing.InstanceStoreObservers

Persistenz

AS_Administrators und AS_Observers

Instanzspeichersichten lesen

System.Activities.DurableInstancing.InstanceStoreUsers

Persistenz

BUILTIN\IIS_IUSRS

Gespeicherte Prozeduren in Verbindung mit Persistenz aufrufen

Microsoft.ApplicationServer.DurableInstancing.WorkflowManagementServiceUsers

Persistenz

AS_Administrators

Steuerungsbefehle aus der Befehlswarteschlange des Speichers entfernen

System.Activities.DurableInstancing.WorkflowActivationUsers

Persistenz

AS_Administrators

Instanzspeicher nach Workflowinstanzen abfragen, die aktiviert werden können

Wenn Sie Active Directory verwenden, wird dringend empfohlen, die AppFabric-Sicherheitsrollen mithilfe von Domänenkonten zu entwerfen, um die computerübergreifende Sicherheit zu vereinfachen. Als AppFabric-Administrator können Sie in Active Directory ausdrücklich zwei benutzerdefinierte Gruppenkonten für die Administratoren und Beobachterrollen erstellen. Sie können sie beispielsweise „DOMAENE\MeineAppFabricAdmins“ und „DOMAENE\MeineAppFabricObserver“ nennen. Anschließend können Sie beiden Gruppen auf jedem Computer manuell Berechtigungen erteilen, indem Sie die Gruppe „DOMAENE\MeineAppFabricAdmins“ der Gruppe „LOCALHOST\AS_Administrators“ und die Gruppe „DOMAENE\MeineAppFabricObserver“ der Gruppe „LOCALHOST\AS_Observers“ hinzufügen. Die Dienste Ereignisauflistungsdienst und Workflowverwaltungsdienst müssen unter Domänenkonten ausgeführt werden, die Mitglieder der Gruppe DOMÄNE\MeineAppFabricAdmins sind.

securitySicherheit Hinweis
AppFabric-Cmdlets, die SQL Server verwenden, verwenden diese SQL Server-Datenbankrollen für die Authentifizierung ihrer Identitäten bei der Ausführung.

Nicht auf SQL Server basierender Datenbankspeicher

Die SQL Server-Datenbankrollen sind für SQL Server spezifisch. Wenn Sie jedoch nicht den standardmäßigen SQL Server-Anbieter verwenden und lieber einen eigenen, benutzerdefinierten Anbieter schreiben möchten, können Sie die Funktionen dieser Rollen den funktionalen Äquivalenten Ihres nicht auf SQL Server basierenden Speichers zuordnen.

Für nicht auf SQL Server basierende Speicher müssen Sie eine Benutzer-ID und ein Kennwort in eine Verbindungszeichenfolge einschließen, um den Zugriff auf den Speicher zu sichern. Es ist zwar zulässig, Benutzer-IDs und Kennwörter wie mit der SQL Server-Authentifizierung mit Verbindungszeichenfolgen an einen Speicher zu übergeben, dennoch wird diese Vorgehensweise nicht empfohlen. Wenn Sie keine andere Wahl haben, als eine Benutzer-ID und ein Kennwort mit der Verbindungszeichenfolge zu übergeben, sollten Sie unbedingt die entsprechenden .NET Framework-Sicherheitspraktiken befolgen, um sicherzustellen, dass die Verbindungszeichenfolge verschlüsselt wird.

Hinweis

Wenn Sie verschlüsselte Verbindungszeichenfolgen verwenden, werden die zugehörigen IIS-Anwendungen korrekt ausgeführt. Allerdings funktionieren die zugehörigen IIS-Manager-Tools nicht, wenn Verbindungszeichenfolgen verschlüsselt sind. Damit Sie die Tools verwenden können, müssen Sie die Verbindungszeichenfolgen entschlüsseln, dann mit den IIS-Tools die gewünschten Änderungen an der Konfiguration vornehmen und die Verbindungszeichenfolgen anschließend wieder verschlüsseln.

  2011-12-05