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:
- Konfigurationsoptionen für Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse Analytics, die Benutzern das Durchführen administrativer Aufgaben und den Zugriff auf in diesen Datenbanken gespeicherten Daten ermöglichen.
- Konfiguration von Zugriff und Autorisierung nachdem ein neuer Server anfangs erstellt wurde.
- 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:
-
Bei dieser Authentifizierungsmethode übergibt der Benutzer einen Benutzerkontonamen und das zugehörige Kennwort, um eine Verbindung herzustellen. Dieses Kennwort wird in der
master
-Datenbank 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.Hinweis
Azure SQL-Datenbank erzwingt Kennwortkomplexität nur für die Kennwortrichtlinie. Informationen zur Kennwortrichtlinie in Azure SQL Managed Instance finden Sie unter Häufig gestellte Fragen zu Azure SQL Managed Instance.
Microsoft Entra-Authentifizierung
Bei dieser Authentifizierungsmethode gibt der Benutzer einen Benutzerkontonamen an und fordert an, dass der Dienst die Anmeldeinformationen verwendet, die in Microsoft Entra ID (früher Azure Active Directory) gespeichert sind.
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 Datenbankrolledb_owner
. Im späteren Verlauf dieses Artikels werden weitere feste Datenbankrollen behandelt.
Um das Konto des Serveradministrators zu identifizieren, öffnen Sie das Azure-Portal, und navigieren Sie zur Registerkarte Eigenschaften Ihres logischen Servers oder Ihrer verwalteten Instanz:
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, wählen Sie im Azure-Portal auf SQL Server, wählen Sie in der Liste den Server aus, und wählen 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-Admin muss 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
- Erstellen Sie eine weitere SQL-Anmeldung in der
master
-Datenbank. - Fügen Sie die Anmeldung mit der Anweisung ALTER SERVER ROLE zur festen Serverrolle „sysadmin“ hinzu. Diese Anmeldung verfügt über vollständige Administratorberechtigungen.
- Alternativ können Sie eine Microsoft Entra-Anmeldung mithilfe der Syntax CREATE LOGIN erstellen.
Hinweis
Die Rollen
dbmanager
undloginmanager
gelten nicht für Azure SQL Managed Instance-Bereitstellungen.- Erstellen Sie eine weitere SQL-Anmeldung in der
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 Anweisung ALTER SERVER ROLE 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 derdbmanager
-Rolle ist, wird das Mitglied der festen Datenbankrolledb_owner
zugeordnet, sodass es sich mit dem Benutzerkontodbo
bei der Datenbank anmelden kann, um sie zu verwalten. Diese Rollen verfügen außerhalb dermaster
-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 Sie eine weitere SQL-Anmeldung in der
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 Rolleloginmanager
oder beiden Rollen in dermaster
-Datenbank mithilfe der Anweisung sp_addrolemember hinzu.
- Erstellen Sie eine weitere SQL-Anmeldung in der
Erstellen von SQL-Anmeldungen mit eingeschränkten Administratorberechtigungen in einem serverlosen SQL-Pool für Azure Synapse
- Erstellen Sie eine weitere SQL-Anmeldung in der
master
-Datenbank. - Fügen Sie die SQL-Anmeldung mit der Anweisung ALTER SERVER ROLE zur festen Serverrolle „sysadmin“ hinzu.
- Alternativ können Sie eine Microsoft Entra-Anmeldung mithilfe der Syntax CREATE LOGIN erstellen.
- Erstellen Sie eine weitere SQL-Anmeldung in der
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:
- Erstellen einer Anmeldung für Azure SQL-Datenbank
- Erstellen einer Anmeldung für Azure SQL Managed Instance
- Erstellen einer Anmeldung für Azure Synapse
- Benutzer erstellen
- Erstellen von eigenständigen Microsoft Entra-Benutzern
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.
So fügen Sie einen Benutzer zu einer festen Datenbankrolle hinzu:
- Verwenden Sie im serverlosen SQL-Pool für Azure SQL-Datenbank und Azure Synapse die ALTER ROLE-Anweisung. Beispiele finden Sie unter Beispiele zu ALTER ROLE.
- Verwenden Sie im dedizierten SQL-Pool für Azure Synapse die sp_addrolemember-Anweisung. Beispiele finden Sie unter Beispiele zu sp_addrolemember.
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 dieUPDATE
-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:
- Mithilfe von Identitätswechsel und Modulsignierung können Berechtigungen ohne Sicherheitsbedenken vorübergehend erhöht werden.
- Sicherheit auf Zeilenebene lassen sich die Zeilen beschränken, auf die ein Benutzer Zugriff hat.
- Daten Masking kann zum Schutz vor unautorisierter Offenlegung von sensiblen Daten verwendet werden.
- Gespeicherten Prozeduren können verwendet werden, um die Aktionen zu begrenzen, die in der Datenbank ausgeführt werden können.