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

GILT FÜR: Azure SQL-Datenbank Azure SQL Managed Instance Azure 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 Masterdatenbank 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 Server, der Datenbanken für Azure SQL-Datenbank und Azure Synapse verwaltet.

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:

  • SQL-Authentifizierung

    Bei dieser Authentifizierungsmethode übergibt der Benutzer einen Benutzerkontonamen und das zugehörige Kennwort, um eine Verbindung herzustellen. Dieses Kennwort wird in der Masterdatenbank für Benutzerkonten, die mit einer Anmeldung verknüpft sind, oder in der Datenbank mit den Benutzerkonten gespeichert, die nicht mit einer Anmeldung verknüpft sind.

  • Azure Active Directory-Authentifizierung

    Bei dieser Authentifizierungsmethode gibt der Benutzer einen Benutzerkontonamen an und fordert an, dass der Dienst die Anmeldeinformationen verwendet, die in Azure Active Directory (Azure AD) gespeichert sind.

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

  • Eine Anmeldung ist ein individuelles Konto in der Masterdatenbank, 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 erstmals bereitstellen, legen Sie eine Administratoranmeldung und ein zugehöriges Kennwort für diese Anmeldung fest. Dieses administrative Konto wird als Serveradministrator bezeichnet. Die folgende Konfiguration der Anmeldungen und Benutzer in den Master- und Benutzerdatenbank erfolgt während der Bereitstellung:

  • Eine SQL-Anmeldung mit Administratorberechtigungen wird mit dem von Ihnen angegebenen Anmeldenamen erstellt. Eine Anmeldung ist ein einzelnes Benutzerkonto 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).
  • Ein Benutzerkonto namens dbo wird in allen Benutzerdatenbank für diese Anmeldung erstellt. Der Benutzer dbo verfügt über alle Datenbankberechtigungen in der Datenbank und ihm wird die feste Datenbankrolle db_owner zugeordnet. Im späteren Verlauf dieses Artikels werden weitere feste Datenbankrollen behandelt.

Öffnen Sie das Azure-Portal, und navigieren Sie zur Registerkarte Eigenschaften Ihres Servers oder Ihrer verwalteten Instanz, um die Administratorkonten für eine Datenbank zu identifizieren.

SQL Server-Administratoren

Screenshot: Hervorhebung der Menüoption „Eigenschaften“

Wichtig

Der Anmeldename des Administrators kann nach der Erstellung nicht 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 Azure Active Directory-Administratorkontos mit vollständigen Administratorberechtigungen

    Aktivieren Sie die Azure Active Directory-Authentifizierung, und erstellen Sie eine Azure AD-Administratoranmeldung. Ein Azure Active Directory-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 Azure AD-Administrator muss konfiguriert werden, wenn Sie Azure AD-Konten zum Herstellen einer Verbindung mit Azure SQL-Datenbank,SQL Managed Instance oder Azure Synapse verwenden möchten. Ausführliche Informationen zum Aktivieren der Azure AD-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

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

    • Erstellen Sie eine weitere SQL-Anmeldung in der Masterdatenbank.
    • Erstellen Sie ein Benutzerkonto in der Masterdatenbank, das dieser neuen Anmeldung zugeordnet ist.
    • Fügen Sie das Benutzerkonto mithilfe der Anweisung ALTER ROLE der Rolle dbmanager, loginmanager oder beiden in der master-Datenbank hinzu (verwenden Sie für Azure Synapse die Anweisung sp_addrolemember).

    Hinweis

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

    Mitglieder dieser speziellen Masterdatenbankrollen 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 Masterdatenbank über keine expliziten Berechtigungen.

    Wichtig

    Sie können keine zusätzliche SQL-Anmeldung mit vollständigen Administratorberechtigungen in Azure SQL-Datenbank erstellen.

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 Masterdatenbank. 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.
    • Wenn SQL Managed Instance Azure AD-Serverprinzipale unterstützt, können Sie Benutzerkonten für die Authentifizierung bei der verwalteten SQL-Instanz 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 Azure 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 Azure AD-Konto angemeldet sein, das über Administratorberechtigungen in der Datenbank in Azure SQL-Datenbank verfügt, um eigenständige Benutzer zu erstellen, die Azure AD-Identitäten zugeordnet sind. In SQL Managed Instance kann auch eine SQL-Anmeldung mit sysadmin-Berechtigungen eine Azure AD-Anmeldung oder einen Azure AD-Benutzer erstellen.

Beispiele zum Erstellen von Anmeldungen und Benutzern finden Sie unter:

Tipp

Ein Sicherheitslernprogramm, 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 Active Directory-Authentifizierung verwenden, fügen Sie Azure Active Directory-Benutzer in Azure Active Directory-Sicherheitsgruppen 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.