VERTRIEB: 1-800-867-1380

Sicherheitsrichtlinien für und Einschränkungen von Azure SQL-Datenbanken

Letzte Aktualisierung: Februar 2014

In diesem Thema werden die sicherheitsbezogenen Microsoft Microsoft Azure SQL-Datenbank-Richtlinien und -Einschränkungen beschrieben. Berücksichtigen Sie beim Verwalten der Sicherheit von Azure SQL-Datenbanken folgende Punkte:

Der Microsoft Azure SQL-Datenbank-Dienst ist ausschließlich über den TCP-Port 1433 verfügbar. Wenn Sie vom Computer aus auf eine Azure SQL-Datenbank zugreifen möchten, stellen Sie sicher, dass von der Firewall die ausgehende TCP-Kommunikation über den TCP-Port 1433 zugelassen wird.

Vor dem erstmaligen Herstellen einer Verbindung mit dem Azure SQL-Datenbank-Server muss die Azure SQL-Datenbank-Firewall über das Azure-Plattformverwaltungsportal konfiguriert werden. Sie müssen eine Firewalleinstellung auf Serverebene erstellen, die Verbindungsversuche durch Ihren Computer oder durch Azure mit dem Azure SQL-Datenbank-Server ermöglicht. Wenn Sie darüber hinaus den Zugriff auf bestimmte Datenbanken auf dem Azure SQL-Datenbank-Server steuern möchten, erstellen Sie Firewallregeln auf Datenbankebene für die entsprechenden Datenbanken. Weitere Informationen finden Sie unter Firewall für die Azure SQL-Datenbank.

Die gesamte Kommunikation zwischen Microsoft Azure SQL-Datenbank und der Anwendung muss stets per SSL verschlüsselt werden. Wenn Zertifikate von der Clientanwendung nicht bei Verbindungsherstellung überprüft werden, ist die Verbindung mit Microsoft Azure SQL-Datenbank anfällig für Man-in-the-Middle-Angriffe.

Fordern Sie zum Überprüfen von Zertifikaten mit Anwendungscode oder Tools explizit eine verschlüsselte Verbindung an, und vertrauen Sie den Serverzertifikaten nicht. Wenn durch den Anwendungscode oder die Tools keine verschlüsselte Verbindung angefordert wird, werden trotzdem verschlüsselte Verbindungen empfangen. Allerdings werden unter Umständen keine Serverzertifikate ausgewertet, was eine Anfälligkeit für Man-in-the-Middle-Angriffe bedeutet.

Legen Sie in der Datenbankverbindungszeichenfolge Folgendes fest, um Zertifikate mit ADO.NET-Anwendungscode zu überprüfen: Encrypt=True und TrustServerCertificate=False. Weitere Informationen finden Sie unter Vorgehensweise: Herstellen einer Verbindung mit der Azure SQL-Datenbank mithilfe von ADO.NET.

Die Zertifikatüberprüfung wird auch von SQL Server Management Studio unterstützt. Klicken Sie im Dialogfeld Verbindung mit Server herstellen auf der Registerkarte Verbindungseigenschaften auf Verbindung verschlüsseln.

noteHinweis
In Versionen vor SQL Server wird Microsoft Azure SQL-Datenbank von SQL Server 2008 R2 Management Studio nicht unterstützt.

Microsoft Azure SQL-Datenbank wurde von SQLCMD zwar ab SQL Server 2008 unterstützt, in Versionen vor SQL Server 2008 R2 werden jedoch keine Zertifikatüberprüfungen unterstützt. Wenn Sie Zertifikate mit SQLCMD ab SQL Server 2008 R2 überprüfen möchten, verwenden Sie die Befehlszeilenoption -N (und nicht die Option -C). Bei Verwendung der Option -N wird von SQLCMD eine verschlüsselte Verbindung angefordert. Durch den Verzicht auf die Option -C wird dem Serverzertifikat von SQLCMD nicht implizit vertraut, und das Zertifikat muss überprüft werden.

Zusätzliche technische Informationen finden Sie im Artikel Sicherheit von Azure SQL-Datenbankverbindungen auf der TechNet Wiki-Site.

Von Microsoft Azure SQL-Datenbank wird ausschließlich die SQL Server-Authentifizierung unterstützt. Die Windows-Authentifizierung (integrierte Sicherheit) wird nicht unterstützt. Benutzer müssen bei jeder Verbindungsherstellung mit Microsoft Azure SQL-Datenbank Anmeldeinformationen (Anmeldung und Kennwort) angeben. Weitere Informationen zur SQL Server-Authentifizierung finden Sie in der SQL Server-Onlinedokumentation unter Auswählen eines Authentifizierungsmodus.

Aus Leistungsgründen wird die Verbindung beim Zurücksetzen eines Kennworts in Microsoft Azure SQL-Datenbank nicht sofort erneut authentifiziert, auch wenn die Verbindung aufgrund des Verbindungspoolings zurückgesetzt wird. Dies stellt einen Unterschied zum Verhalten einer lokalen Instanz von SQL Server dar. Wurde das Kennwort geändert, ist die Anforderung nicht erfolgreich, und die Verbindung mit der Sitzung wird getrennt (die Sitzung wird also beendet). Um sich mit dem neuen Kennwort zu authentifizieren, beenden Sie die Sitzung mit dem KILL-Befehl und stellen erneut eine Verbindung her. Weitere Informationen zum KILL-Befehl finden Sie unter KILL (Azure SQL-Datenbank).

Beim Verwalten von Anmeldungen und Benutzern in Microsoft Azure SQL-Datenbank gelten bestimmte Einschränkungen.

  • Für die Serverebenenprinzipal-Anmeldung gelten folgende Einschränkungen:

    • Der Datenbankbenutzer in der master-Datenbank, der der Serverebenenprinzipal-Anmeldung entspricht, kann nicht geändert oder gelöscht werden.

    • Die Serverebenenprinzipal-Anmeldung ist zwar kein Mitglied der beiden Datenbankrollen dbmanager und loginmanager in der master-Datenbank, verfügt jedoch über alle Berechtigungen dieser beiden Rollen.

noteHinweis
Diese Anmeldung wird im Rahmen der Serverbereitstellung erstellt und ist vergleichbar mit der sa-Anmeldung in einer Instanz von SQL Server. Weitere Informationen zur Serverbereitstellung finden Sie unter Server Provisioning Model (SQL Data Services).

Folgende Einschränkungen gelten für alle Anmeldungen:

  • Die Standardsprache ist Englisch (US).

  • Für den Zugriff auf die master-Datenbank muss jede Anmeldung einem Benutzerkonto in der master-Datenbank zugeordnet werden.

  • Wenn Sie in der Verbindungszeichenfolge keine Datenbank angeben, wird standardmäßig eine Verbindung mit der master-Datenbank hergestellt.

  • Beim Ausführen der Anweisungen CREATE/ALTER/DROP LOGIN und CREATE/ALTER/DROP DATABASE muss eine Verbindung mit der master-Datenbank bestehen.

  • Werden die Anweisungen CREATE/ALTER/DROP LOGIN und CREATE/ALTER/DROP DATABASE in einer ADO.NET-Anwendung ausgeführt, dürfen keine parametrisierten Befehle verwendet werden. Weitere Informationen finden Sie unter Befehle und Parameter (ADO.NET).

  • Beim Ausführen der Anweisungen CREATE/ALTER/DROP DATABASE und CREATE/ALTER/DROP LOGIN muss jede diese Anweisungen die einzige Anweisung in einem Transact-SQL-Batch sein. Andernfalls tritt ein Fehler auf. So wird beispielsweise mit der folgenden Transact-SQL überprüft, ob die Datenbank vorhanden ist. Ist sie vorhanden, wird eine DROP DATABASE-Anweisung aufgerufen, um die Datenbank zu entfernen. Da die DROP DATABASE-Anweisung nicht die einzige Anweisung im Batch ist, tritt beim Ausführen dieser Transact-SQL ein Fehler auf.

IF EXISTS (SELECT [name]
           FROM   [sys].[databases]
           WHERE  [name] = N'database_name')
     DROP DATABASE [database_name];
go
  • Wird die CREATE USER-Anweisung zusammen mit der Option FOR/FROM LOGIN ausgeführt, muss sie die einzige Anweisung in einem Transact-SQL-Batch sein.

  • Wird die ALTER USER-Anweisung zusammen mit der Option WITH LOGIN ausgeführt, muss sie die einzige Anweisung in einem Transact-SQL-Batch sein.

  • Nur die Serverebenenprinzipal-Anmeldung und die Mitglieder der dbmanager-Datenbankrolle in der master-Datenbank verfügen über die Berechtigung zum Ausführen der Anweisungen CREATE DATABASE und DROP DATABASE.

  • Nur die Serverebenenprinzipal-Anmeldung und die Mitglieder der loginmanager-Datenbankrolle in der master-Datenbank verfügen über die Berechtigung zum Ausführen der Anweisungen CREATE LOGIN, ALTER LOGIN und DROP LOGIN.

  • Wenn der Besitzer einer Datenbankrolle versucht, der Datenbankrolle einen Datenbankbenutzer hinzuzufügen oder aus der Datenbankrolle zu entfernen, tritt unter Umständen der folgende Fehler auf: User or role 'Name' does not exist in this database. Dieser Fehler tritt auf, da der Benutzer für den Besitzer nicht sichtbar ist. Erteilen Sie dem Rollenbesitzer die VIEW DEFINITION-Berechtigung für den Benutzer, um dieses Problem zu beheben.

Berücksichtigen Sie die folgenden Punkte, um die Azure SQL-Datenbankanwendungen besser vor Sicherheitsrisiken zu schützen:

  • Verwenden der neusten Updates: Verwenden Sie zum Herstellen einer Verbindung mit der Azure SQL-Datenbank stets die jeweils aktuelle Version von Tools und Bibliotheken, um das Entstehen von Sicherheitslücken zu verhindern. Weitere Informationen zu den unterstützten Tools und Bibliotheken finden Sie unter Allgemeine Richtlinien für und Einschränkungen von Azure SQL-Datenbanken.

  • Blockieren eingehender Verbindungen über den TCP-Port 1433: Für die Anwendungskommunikation mit Microsoft Azure SQL-Datenbank werden lediglich ausgehende Verbindungen über den TCP-Port 1433 benötigt. Sofern die eingehende Kommunikation nicht von einer anderen Anwendung auf diesem Computer benötigt wird, stellen Sie sicher, dass eingehende Verbindungen über den TCP-Port 1433 weiterhin von der Firewall blockiert werden.

  • Verhindern vor Einschleusungsangriffen: Verwenden Sie nach Möglichkeit parametrisierte Abfragen, um sicherzustellen, dass die Anwendungen nicht für Angriffe durch Einschleusung von SQL-Befehlen anfällig sind. Unterziehen Sie den Code zudem einer gründlichen Überprüfung, und führen Sie vor dem Bereitstellen der Anwendung einen Penetrationstest aus.

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft