Autorisieren des Datenbankzugriffs für Azure SQL-Datenbank, SQL Managed Instance und Azure Synapse Analytics

Gilt für:Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics

In diesem Artikel lernen Sie Folgendes:

  • Optionen zum Konfigurieren von Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse Analytics, um Benutzern das Durchführen administrativer Aufgaben und den Zugriff auf die in diesen Datenbanken gespeicherten Daten zu ermöglichen
  • Konfiguration von Zugriff und Autorisierung nach der ersten Erstellung eines neuen Servers
  • Hinzufügen von Anmeldungen und Benutzerkonten in der master-Datenbank und Gewähren von Administratorberechtigungen für diese Konten
  • Hinzufügen von Benutzerkonten zu Benutzerdatenbanken im Zusammenhang mit Anmeldungen oder als eigenständige Benutzerkonten
  • Konfigurieren von Benutzerkonten mit Berechtigungen in Benutzerdatenbanken mithilfe von Datenbankrollen und expliziten Berechtigungen

Wichtig

Datenbanken in Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse werden im restlichen Teil dieses Artikels gemeinsam als Datenbanken bezeichnet. Server bezieht sich auf den logischen Server, der Datenbanken für Azure SQL-Datenbank und Azure Synapse verwaltet.

Hinweis

Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.

Authentifizierung und Autorisierung

Die Authentifizierung ist der Prozess, in dem die Identität des Benutzers bestätigt wird. Ein Benutzer stellt mithilfe eines Benutzerkontos eine Verbindung zu einer Datenbank her. Wenn ein Benutzer versucht, eine Verbindung mit einer Datenbank herzustellen, gibt er ein Benutzerkonto und Authentifizierungsinformationen an. Der Benutzer wird mit einer der folgenden zwei Authentifizierungsmethoden authentifiziert:

Anmeldungen und Benutzer*innen: Ein Benutzerkonto in einer Datenbank kann einer Anmeldung zugeordnet werden, die in der master-Datenbank gespeichert ist oder ein Benutzername ist, der in einer individuellen Datenbank gespeichert wird.

  • Eine Anmeldung ist ein individuelles Konto in der master-Datenbank, mit dem ein Benutzerkonto in mehreren Datenbanken verknüpft werden kann. Die Anmeldeinformationen für das Benutzerkonto werden zusammen mit der Anmeldung gespeichert.
  • Ein Benutzerkonto ist ein individuelles Konto in einer Datenbank, das mit einer Anmeldung verknüpft sein kann. Dies ist jedoch nicht erforderlich. Bei Benutzerkonten, die nicht mit einer Anmeldung verknüpft sind, werden die Anmeldeinformationen mit dem Benutzerkonto gespeichert.

Die Autorisierung für den Zugriff auf Daten und das Durchführen verschiedener Aktionen wird mithilfe von Datenbankrollen und expliziten Berechtigungen verwaltet. Der Begriff „Autorisierung“ bezieht sich auf Berechtigungen, die einem Benutzer zugewiesen werden. Die Autorisierung wird durch die Rollenmitgliedschaften und Berechtigungen auf Objektebene der Datenbank Ihres Benutzerkontos gesteuert. Als bewährte Methode sollten Sie Benutzern nur die minimal erforderlichen Berechtigungen erteilen.

Vorhandene Anmeldungen und Benutzerkonten nach Erstellung einer Datenbank

Wenn Sie Azure SQL zum ersten Mal bereitstellen, können Sie einen Anmeldenamen und ein Kennwort für eine spezielle Art von Administratoranmeldung angeben, den Serveradministrator. Die folgende Konfiguration von Anmeldungen und Benutzern in den Master- und Benutzerdatenbanken erfolgt während der Bereitstellung:

  • Eine SQL-Anmeldung mit Administratorberechtigungen wird mit dem von Ihnen angegebenen Anmeldenamen erstellt. Eine Anmeldung ist ein einzelnes Konto für die Anmeldung bei SQL-Datenbank, SQL Managed Instance und Azure Synapse.
  • Dieser Anmeldung werden vollständige Administratorberechtigungen für alle Datenbanken als Serverebenenprinzipal gewährt. Die Anmeldung verfügt über alle verfügbaren Berechtigungen und kann nicht eingeschränkt werden. In einer SQL Managed Instance wird diese Anmeldung zur festen Serverrolle „sysadmin“ hinzugefügt (diese Rolle ist in Azure SQL-Datenbank nicht vorhanden).
  • Wenn sich dieses Konto bei einer Datenbank anmeldet, wird es mit dem speziellen Benutzerkonto dbo abgeglichen, einem Benutzerkonto, das in jeder Benutzerdatenbank vorhanden ist. Der Benutzer dbo verfügt über alle Datenbankberechtigungen in der Datenbank und ist Mitglied der festen Datenbankrolle db_owner. Im späteren Verlauf dieses Artikels werden weitere feste Datenbankrollen behandelt.

Um das Konto des Serveradministrators für einen logischen Server zu identifizieren, öffnen Sie das Azure-Portal, und navigieren Sie zur Registerkarte Eigenschaften Ihres Servers oder Ihrer verwalteten Instanz.

Screenshot shows the SQL Server Properties page where you can obtain the Server admin login and Microsoft Entra admin values.

Screenshot shows the SQL managed instance Properties page where you can obtain the login and Microsoft Entra admin values.

Wichtig

Der Name des Kontos für den Serveradministrator kann nach der Erstellung nicht mehr geändert werden. Um das Kennwort für den Serveradministrator zurückzusetzen, klicken Sie im Azure-Portal auf SQL Server, wählen Sie in der Liste den Server aus, und klicken Sie dann auf Kennwort zurücksetzen. Rufen Sie das Azure-Portal auf, klicken Sie auf die Instanz, und wählen Sie dann Kennwort zurücksetzen aus, um das Kennwort für die SQL Managed Instance zurückzusetzen. Sie können auch PowerShell oder die Azure CLI verwenden.

Erstellen weiterer Anmeldungen und Benutzer mit Administratorberechtigungen

An diesem Punkt ist Ihr Server oder Ihre verwaltete Instanz lediglich für den Zugriff mit einer einzigen SQL-Anmeldung und einem Benutzerkonto konfiguriert. Zum Erstellen weiterer Anmeldungen mit vollständigen oder partiellen Administratorberechtigungen stehen Ihnen die folgenden Optionen zur Auswahl (je nach Bereitstellungsmodus):

  • Erstellen eines Microsoft Entra-Administratorkontos mit vollständigen Administratorberechtigungen

    Aktivieren Sie die Microsoft Entra-Authentifizierung, und fügen Sie einen Microsoft Entra-Administrato hinzu. Ein Microsoft Entra-Konto kann als Administrator der Azure SQL-Bereitstellung mit vollständigen Administratorberechtigungen konfiguriert werden. Bei diesem Konto kann es sich um ein einzelnes Konto oder ein Sicherheitsgruppenkonto handeln. Ein Microsoft Entra-Administratormuss konfiguriert werden, wenn Sie Microsoft Entra-Konten zum Herstellen einer Verbindung mit SQL-Datenbank, SQL Managed Instance oder Azure Synapse verwenden möchten. Ausführliche Informationen zum Aktivieren der Microsoft Entra-Authentifizierung für alle Azure SQL-Bereitstellungstypen finden Sie in den folgenden Artikeln:

  • Erstellen von SQL-Anmeldungen mit vollständigen Administratorberechtigungen in SQL Managed Instance

    Hinweis

    Die Rollen dbmanager und loginmanager gelten nicht für Azure SQL Managed Instance-Bereitstellungen.

  • Erstellen von SQL-Anmeldungen mit eingeschränkten Administratorberechtigungen in Azure SQL-Datenbank

    • Erstellen Sie eine weitere SQL-Anmeldung in der master-Datenbank.
    • Fügen Sie die Anmeldung den Rollen auf Serverebene (##MS_DatabaseManager##, ##MS_LoginManager## und ##MS_DatabaseConnector##) mithilfe der ALTER SERVER ROLE-Anweisung hinzu.

    Mitglieder dieser speziellen master-Datenbankrollen für Azure SQL-Datenbank verfügen über Berechtigungen zum Erstellen und Verwalten von Datenbanken oder Anmeldungen. In Datenbanken, die von einem Benutzer erstellt wurden, der Mitglied der dbmanager-Rolle ist, wird das Mitglied der festen Datenbankrolle db_owner zugeordnet, sodass es sich mit dem Benutzerkonto dbo bei der Datenbank anmelden kann, um sie zu verwalten. Diese Rollen verfügen außerhalb der master-Datenbank über keine expliziten Berechtigungen.

    Wichtig

    Sie können keine zusätzliche SQL-Anmeldung mit vollständigen Administratorberechtigungen in Azure SQL-Datenbank erstellen. Nur das Serveradministratorkonto oder das Microsoft Entra-Administratorkonto (kann eine Microsoft Entra-Gruppe sein) können andere Anmeldungen zu Serverrollen hinzufügen oder aus diesen entfernen. Dies gilt nur für Azure SQL-Datenbank.

  • Erstellen von SQL-Anmeldungen mit eingeschränkten Administratorberechtigungen in einem dedizierten SQL-Pool für Azure Synapse

    • Erstellen Sie eine weitere SQL-Anmeldung in der master-Datenbank.
    • Erstellen Sie ein Benutzerkonto in der master-Datenbank, das dieser neuen Anmeldung zugeordnet ist.
    • Fügen Sie das Benutzerkonto der Rolle dbmanager, der Rolle loginmanager oder beiden Rollen in der master-Datenbank mithilfe der Anweisung sp_addrolemember hinzu.
  • Erstellen von SQL-Anmeldungen mit eingeschränkten Administratorberechtigungen in einem serverlosen SQL-Pool für Azure Synapse

Erstellen von Konten für Benutzer ohne Administratorberechtigungen

Sie können Konten für Benutzer ohne Administratorberechtigungen mithilfe einer der folgenden zwei Methoden erstellen:

  • Erstellen einer Anmeldung

    Erstellen Sie eine SQL-Anmeldung in der master-Datenbank. Erstellen Sie dann ein Benutzerkonto in allen Datenbanken, auf die der Benutzer zugreifen können muss, und verknüpfen Sie das Benutzerkonto mit der Anmeldung. Dieser Ansatz wird bevorzugt, wenn der Benutzer auf mehrere Datenbanken zugreifen muss und die Kennwörter synchronisiert bleiben sollen. Bei diesem Ansatz kommt es bei Verwendung mit Georeplikation zu Komplexitäten, da die Anmeldung sowohl auf dem primären Server als auch auf den sekundären Servern erstellt werden muss. Weitere Informationen finden Sie unter Konfigurieren und Verwalten der Sicherheit von Azure SQL-Datenbank für die Geowiederherstellung oder den Failover.

  • Erstellen eines Benutzerkontos

    Erstellen Sie ein Benutzerkonto in der Datenbank, auf die ein Benutzer zugreifen muss (dieser wird auch als eigenständiger Benutzer bezeichnet).

    • Bei Azure SQL-Datenbank können Sie diese Art von Benutzerkonto immer erstellen.
    • Da SQL Managed Instance Microsoft Entra-Dienstprinzipale unterstützt, können Sie Benutzerkonten für die Authentifizierung bei SQL Managed Instance erstellen, ohne dass Datenbankbenutzer als eigenständige Datenbankbenutzer erstellt werden müssen.

    Bei diesem Ansatz werden die Benutzerauthentifizierungsinformationen in den einzelnen Datenbanken gespeichert und automatisch in georeplizierten Datenbanken repliziert. Wenn jedoch dasselbe Konto in mehreren Datenbanken vorhanden ist und Sie die SQL-Authentifizierung verwenden, müssen Sie die Kennwörter manuell synchronisieren. Wenn ein Benutzer über ein Konto in verschiedenen Datenbanken mit unterschiedlichen Kennwörtern verfügt, kann das Merken dieser Kennwörter ebenfalls zu einem Problem werden.

Wichtig

Sie müssen mit einem Microsoft Entra-Konto bei der Datenbank in Azure SQL-Datenbank angemeldet sein, um eigenständige Benutzer zu erstellen, die Microsoft Entra-Identitäten zugeordnet sind. In SQL Managed Instance kann auch eine SQL-Anmeldung mit sysadmin-Berechtigungen eine Microsoft Entra-Anmeldung oder einen Microsoft Entra-Benutzer erstellen.

Beispiele zum Erstellen von Anmeldungen und Benutzern finden Sie unter:

Tipp

Ein Sicherheitstutorial, in dem das Erstellen von Benutzern in Azure SQL-Datenbank behandelt wird, finden Sie unter Tutorial: Schützen von Azure SQL-Datenbank.

Verwenden fester und benutzerdefinierter Datenbankrollen

Nachdem Sie ein Benutzerkonto basierend auf einer Anmeldung oder als eigenständigen Benutzer in einer Datenbank erstellt haben, können Sie diesen Benutzer zum Durchführen verschiedener Aktionen und für den Zugriff auf Daten in einer bestimmten Datenbank autorisieren. Sie können die folgenden Methoden zum Autorisieren des Zugriffs verwenden:

  • Feste Datenbankrollen

    Fügen Sie das Benutzerkonto zu einer festen Datenbankrolle hinzu. Es gibt 9 feste Datenbankrollen, die jeweils über definierte Berechtigungen verfügen. Die folgenden festen Datenbankrollen werden am häufigsten verwendet: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter und db_denydatareader. db_owner wird häufig verwendet, um nur einigen Benutzern uneingeschränkte Berechtigungen zu erteilen. Die anderen festen Datenbankrollen sind hilfreich, um bei der Entwicklung schnell eine einfache Datenbank zu erhalten, aber sie sind auch für die meisten Produktionsdatenbanken zu empfehlen. Die feste Datenbankrolle db_datareader gewährt beispielsweise Lesezugriff auf alle Tabellen in der Datenbank. Dies ist im nicht unbedingt erforderlich.

  • Benutzerdefinierte Datenbankrolle

    Erstellen Sie mit der Anweisung CREATE ROLE eine benutzerdefinierte Datenbankrolle. Mit einer benutzerdefinierten Rolle können Sie Ihre eigenen benutzerdefinierte Datenbankrollen erstellen und jeder Rolle sorgfältig die mindestens erforderlichen Berechtigungen für die geschäftlichen Aufgaben zuweisen. Anschließend können Sie Benutzer zur benutzerdefinierten Rolle hinzufügen. Wenn ein Benutzer Mitglied mehrerer Rollen ist, verfügt er über die zusammengefassten Berechtigungen all dieser Rollen.

  • Direktes Zuweisen von Berechtigungen

    Erteilen Sie die Berechtigungen direkt dem Benutzerkonto. Es gibt mehr als 100 Berechtigungen, die in SQL-Datenbank individuell gewährt oder verweigert werden können. Viele dieser Berechtigungen sind geschachtelt. Die UPDATE-Berechtigung für ein Schema enthält beispielsweise für jede Tabelle des Schemas die UPDATE-Berechtigung. Wie bei den meisten Berechtigungssystemen wird eine Gewährung durch die Verweigerung einer Berechtigung außer Kraft gesetzt. Aufgrund der Schachtelung und der Anzahl von Berechtigungen muss ein geeignetes Berechtigungssystem sorgfältig entworfen werden, um für Ihre Datenbank den richtigen Schutz sicherzustellen. Beginnen Sie mit der Liste der Berechtigungen unter Berechtigungen (Datenbank-Engine), und sehen Sie sich die Grafik in Postergröße mit den Berechtigungen an.

Verwenden von Gruppen

Bei der effizienten Zugriffsverwaltung werden Berechtigungen verwendet, die Active Directory-Sicherheitsgruppen sowie festen oder benutzerdefinierten Rollen anstelle einzelner Benutzer zugewiesen werden.

  • Wenn Sie die Microsoft Entra-Authentifizierung verwenden, fügen Sie Microsoft Entra-Benutzer in eine Microsoft Entra-Sicherheitsgruppe ein. Erstellen Sie einen eigenständigen Datenbankbenutzer für die Gruppe. Fügen Sie mindestens einen Datenbankbenutzer als Mitglied zu benutzerdefinierten oder integrierten Datenbankrollen mit den spezifischen Berechtigungen hinzu, die für diese Benutzergruppe geeignet sind.

  • Wenn Sie die SQL-Authentifizierung verwenden, erstellen Sie eigenständige Datenbankbenutzer in der Datenbank. Weisen Sie mindestens einem Datenbankbenutzer eine benutzerdefinierte Datenbankrolle mit spezifischen Berechtigungen zu, die der jeweiligen Benutzergruppe entspricht.

    Hinweis

    Sie können auch nicht eigenständige Datenbankbenutzer gruppieren.

Machen Sie sich mit den folgenden Features zum Einschränken oder Erweitern von Berechtigungen vertraut:

Nächste Schritte

Eine Übersicht über alle Sicherheitsfunktionen von Azure SQL-Datenbank und SQL Managed Instance finden Sie unter Sicherheit – Überblick.