Autorisieren des Datenbankzugriffs für Azure SQL-Datenbank, SQL Managed Instance und Azure Synapse AnalyticsAuthorize database access to SQL Database, SQL Managed Instance, and Azure Synapse Analytics

GILT FÜR: JaAzure SQL-Datenbank JaAzure SQL Managed Instance JaAzure Synapse Analytics (SQL DW) APPLIES TO: yesAzure SQL Database yesAzure SQL Managed Instance yes Azure Synapse Analytics (SQL DW)

In diesem Artikel lernen Sie Folgendes:In this article, you learn about:

  • Optionen zum Konfigurieren von Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse Analytics (zuvor Azure SQL Data Warehouse), um Benutzern das Durchführen administrativer Aufgaben und den Zugriff auf in diesen Datenbanken gespeicherte Daten zu erlaubenOptions for configuring Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics (formerly Azure SQL Data Warehouse) to enable users to perform administrative tasks and to access the data stored in these databases.
  • Konfiguration von Zugriff und Autorisierung nach der ersten Erstellung eines neuen ServersThe access and authorization configuration after initially creating a new server.
  • Hinzufügen von Anmeldungen und Benutzerkonten in der Masterdatenbank und Gewähren von Administratorberechtigungen für diese KontenHow to add logins and user accounts in the master database and user accounts and then grant these accounts administrative permissions.
  • Hinzufügen von Benutzerkonten zu Benutzerdatenbanken im Zusammenhang mit Anmeldungen oder als eigenständige BenutzerkontenHow to add user accounts in user databases, either associated with logins or as contained user accounts.
  • Konfigurieren von Benutzerkonten mit Berechtigungen in Benutzerdatenbanken mithilfe von Datenbankrollen und expliziten BerechtigungenConfigure user accounts with permissions in user databases by using database roles and explicit permissions.

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.Databases in Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse are referred to collectively in the remainder of this article as databases, and the server is referring to the server that manages databases for Azure SQL Database and Azure Synapse.

Authentifizierung und AutorisierungAuthentication and authorization

Die Authentifizierung ist der Prozess, in dem die Identität des Benutzers bestätigt wird.Authentication is the process of proving the user is who they claim to be. Ein Benutzer stellt mithilfe eines Benutzerkontos eine Verbindung zu einer Datenbank her.A user connects to a database using a user account. Wenn ein Benutzer versucht, eine Verbindung mit einer Datenbank herzustellen, gibt er ein Benutzerkonto und Authentifizierungsinformationen an.When a user attempts to connect to a database, they provide a user account and authentication information. Der Benutzer wird mit einer der folgenden zwei Authentifizierungsmethoden authentifiziert:The user is authenticated using one of the following two authentication methods:

  • SQL-AuthentifizierungSQL authentication.

    Bei dieser Authentifizierungsmethode übergibt der Benutzer einen Benutzerkontonamen und das zugehörige Kennwort, um eine Verbindung herzustellen.With this authentication method, the user submits a user account name and associated password to establish a connection. 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.This password is stored in the master database for user accounts linked to a login or stored in the database containing the user accounts not linked to a login.

  • Azure Active Directory-AuthentifizierungAzure Active Directory Authentication

    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.With this authentication method, the user submits a user account name and requests that the service use the credential information stored in Azure Active Directory (Azure AD).

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.Logins and users: A user account in a database can be associated with a login that is stored in the master database or can be a user name that is stored in an individual database.

  • Eine Anmeldung ist ein individuelles Konto in der Masterdatenbank, mit dem ein Benutzerkonto in mehreren Datenbanken verknüpft werden kann.A login is an individual account in the master database, to which a user account in one or more databases can be linked. Die Anmeldeinformationen für das Benutzerkonto werden zusammen mit der Anmeldung gespeichert.With a login, the credential information for the user account is stored with the login.
  • Ein Benutzerkonto ist ein individuelles Konto in einer Datenbank, das mit einer Anmeldung verknüpft sein kann. Dies ist jedoch nicht erforderlich.A user account is an individual account in any database that may be, but does not have to be, linked to a login. Bei Benutzerkonten, die nicht mit einer Anmeldung verknüpft sind, werden die Anmeldeinformationen mit dem Benutzerkonto gespeichert.With a user account that is not linked to a login, the credential information is stored with the user account.

Die Autorisierung für den Zugriff auf Daten und das Durchführen verschiedener Aktionen wird mithilfe von Datenbankrollen und expliziten Berechtigungen verwaltet.Authorization to access data and perform various actions are managed using database roles and explicit permissions. Der Begriff „Autorisierung“ bezieht sich auf Berechtigungen, die einem Benutzer zugewiesen werden.Authorization refers to the permissions assigned to a user, and determines what that user is allowed to do. Die Autorisierung wird durch die Rollenmitgliedschaften und Berechtigungen auf Objektebene der Datenbank Ihres Benutzerkontos gesteuert.Authorization is controlled by your user account's database role memberships and object-level permissions. Als bewährte Methode sollten Sie Benutzern nur die minimal erforderlichen Berechtigungen erteilen.As a best practice, you should grant users the least privileges necessary.

Vorhandene Anmeldungen und Benutzerkonten nach Erstellung einer DatenbankExisting logins and user accounts after creating a new database

Wenn Sie Azure SQL erstmals bereitstellen, legen Sie eine Administratoranmeldung und ein zugehöriges Kennwort für diese Anmeldung fest.When you first deploy Azure SQL, you specify an admin login and an associated password for that login. Dieses administrative Konto wird als Serveradministrator bezeichnet. Die folgende Konfiguration der Anmeldungen und Benutzer in den Master- und Benutzerdatenbank erfolgt während der Bereitstellung:This administrative account is called Server admin. The following configuration of logins and users in the master and user databases occurs during deployment:

  • Eine SQL-Anmeldung mit Administratorberechtigungen wird mit dem von Ihnen angegebenen Anmeldenamen erstellt.A SQL login with administrative privileges is created using the login name you specified. Eine Anmeldung ist ein einzelnes Benutzerkonto für die Anmeldung bei SQL-Datenbank, SQL Managed Instance und Azure Synapse.A login is an individual user account for logging in to SQL Database, SQL Managed Instance, and Azure Synapse.
  • Dieser Anmeldung werden vollständige Administratorberechtigungen für alle Datenbanken als Serverebenenprinzipal gewährt.This login is granted full administrative permissions on all databases as a server-level principal. Die Anmeldung verfügt über alle verfügbaren Berechtigungen und kann nicht eingeschränkt werden.The login has all available permissions and can't be limited. In einer SQL Managed Instance wird diese Anmeldung zur festen Serverrolle „sysadmin“ hinzugefügt (diese Rolle ist in Azure SQL-Datenbank nicht vorhanden).In a SQL Managed Instance, this login is added to the sysadmin fixed server role (this role does not exist in Azure SQL Database).
  • Ein Benutzerkonto namens dbo wird in allen Benutzerdatenbank für diese Anmeldung erstellt.A user account called dbo is created for this login in each user database. Der Benutzer dbo verfügt über alle Datenbankberechtigungen in der Datenbank und ihm wird die feste Datenbankrolle db_owner zugeordnet.The dbo user has all database permissions in the database and is mapped to the db_owner fixed database role. Im späteren Verlauf dieses Artikels werden weitere feste Datenbankrollen behandelt.Additional fixed database roles are discussed later in this article.

Ö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.To identify the administrator accounts for a database, open the Azure portal, and navigate to the Properties tab of your server or managed instance.

SQL Server-Administratoren

SQL Server-Administratoren

Wichtig

Der Anmeldename des Administrators kann nach der Erstellung nicht geändert werden.The admin login name can't be changed after it has been created. 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.To reset the password for the server admin, go to the Azure portal, click SQL Servers, select the server from the list, and then click Reset Password. 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.To reset the password for the SQL Managed Instance, go to the Azure portal, click the instance, and click Reset password. Sie können auch PowerShell oder die Azure CLI verwenden.You can also use PowerShell or the Azure CLI.

Erstellen weiterer Anmeldungen und Benutzer mit AdministratorberechtigungenCreate additional logins and users having administrative permissions

An diesem Punkt ist Ihr Server oder Ihre verwaltete Instanz lediglich für den Zugriff mit einer einzigen SQL-Anmeldung und einem Benutzerkonto konfiguriert.At this point, your server or managed instance is only configured for access using a single SQL login and user account. Zum Erstellen weiterer Anmeldungen mit vollständigen oder partiellen Administratorberechtigungen stehen Ihnen die folgenden Optionen zur Auswahl (je nach Bereitstellungsmodus):To create additional logins with full or partial administrative permissions, you have the following options (depending on your deployment mode):

  • Erstellen eines Azure Active Directory-Administratorkontos mit vollständigen AdministratorberechtigungenCreate an Azure Active Directory administrator account with full administrative permissions

    Aktivieren Sie die Azure Active Directory-Authentifizierung, und erstellen Sie eine Azure AD-Administratoranmeldung.Enable Azure Active Directory authentication and create an Azure AD administrator login. Ein Azure Active Directory-Konto kann als Administrator der Azure SQL-Bereitstellung mit vollständigen Administratorberechtigungen konfiguriert werden.One Azure Active Directory account can be configured as an administrator of the Azure SQL deployment with full administrative permissions. Bei diesem Konto kann es sich um ein einzelnes Konto oder ein Sicherheitsgruppenkonto handeln.This account can be either an individual or security group account. 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.An Azure AD administrator must be configured if you want to use Azure AD accounts to connect to SQL Database, SQL Managed Instance, or Azure Synapse. Ausführliche Informationen zum Aktivieren der Azure AD-Authentifizierung für alle Azure SQL-Bereitstellungstypen finden Sie in den folgenden Artikeln:For detailed information on enabling Azure AD authentication for all Azure SQL deployment types, see the following articles:

  • Erstellen von SQL-Anmeldungen mit vollständigen Administratorberechtigungen in SQL Managed InstanceIn SQL Managed Instance, create SQL logins with full administrative permissions

  • Erstellen von SQL-Anmeldungen mit eingeschränkten Administratorberechtigungen in Azure SQL-DatenbankIn SQL Database, create SQL logins with limited administrative permissions

    • Erstellen Sie eine weitere SQL-Anmeldung in der Masterdatenbank.Create an additional SQL login in the master database.
    • Erstellen Sie ein Benutzerkonto in der Masterdatenbank, das dieser neuen Anmeldung zugeordnet ist.Create a user account in the master database associated with this new login.
    • 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).Add the user account to the dbmanager, the loginmanager role, or both in the master database using the ALTER ROLE statement (for Azure Synapse, use the sp_addrolemember statement).

    Hinweis

    Die Rollen dbmanager und loginmanager gelten nicht für SQL Managed Instance-Bereitstellungen.dbmanager and loginmanager roles do not pertain to SQL Managed Instance deployments.

    Mitglieder dieser speziellen Masterdatenbankrollen für Azure SQL-Datenbank verfügen über Berechtigungen zum Erstellen und Verwalten von Datenbanken oder Anmeldungen.Members of these special master database roles for Azure SQL Database have authority to create and manage databases or to create and manage logins. 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.In databases created by a user that is a member of the dbmanager role, the member is mapped to the db_owner fixed database role and can log into and manage that database using the dbo user account. Diese Rollen verfügen außerhalb der Masterdatenbank über keine expliziten Berechtigungen.These roles have no explicit permissions outside of the master database.

    Wichtig

    Sie können keine zusätzliche SQL-Anmeldung mit vollständigen Administratorberechtigungen in Azure SQL-Datenbank erstellen.You can't create an additional SQL login with full administrative permissions in SQL Database.

Erstellen von Konten für Benutzer ohne AdministratorberechtigungenCreate accounts for non-administrator users

Sie können Konten für Benutzer ohne Administratorberechtigungen mithilfe einer der folgenden zwei Methoden erstellen:You can create accounts for non-administrative users using one of two methods:

  • Erstellen einer AnmeldungCreate a login

    Erstellen Sie eine SQL-Anmeldung in der Masterdatenbank.Create a SQL login in the master database. 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.Then create a user account in each database to which that user needs access and associate the user account with that login. Dieser Ansatz wird bevorzugt, wenn der Benutzer auf mehrere Datenbanken zugreifen muss und die Kennwörter synchronisiert bleiben sollen.This approach is preferred when the user must access multiple databases and you wish to keep the passwords synchronized. 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.However, this approach has complexities when used with geo-replication as the login must be created on both the primary server and the secondary server(s). Weitere Informationen finden Sie unter Konfigurieren und Verwalten der Sicherheit von Azure SQL-Datenbank für die Geowiederherstellung oder den Failover.For more information, see Configure and manage Azure SQL Database security for geo-restore or failover.

  • Erstellen eines BenutzerkontosCreate a user account

    Erstellen Sie ein Benutzerkonto in der Datenbank, auf die ein Benutzer zugreifen muss (dieser wird auch als eigenständiger Benutzer bezeichnet).Create a user account in the database to which a user needs access (also called a contained user).

    • Bei Azure SQL-Datenbank können Sie diese Art von Benutzerkonto immer erstellen.With SQL Database, you can always create this type of user account.
    • 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.With SQL Managed Instance supporting Azure AD server principals, you can create user accounts to authenticate to the SQL Managed Instance without requiring database users to be created as a contained database user.

    Bei diesem Ansatz werden die Benutzerauthentifizierungsinformationen in den einzelnen Datenbanken gespeichert und automatisch in georeplizierten Datenbanken repliziert.With this approach, the user authentication information is stored in each database, and replicated to geo-replicated databases automatically. Wenn jedoch dasselbe Konto in mehreren Datenbanken vorhanden ist und Sie die Azure SQL-Authentifizierung verwenden, müssen Sie die Kennwörter manuell synchronisieren.However, if the same account exists in multiple databases and you are using Azure SQL Authentication, you must keep the passwords synchronized manually. 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.Additionally, if a user has an account in different databases with different passwords, remembering those passwords can become a problem.

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.To create contained users mapped to Azure AD identities, you must be logged in using an Azure AD account that is an administrator in the database in Azure SQL Database. In SQL Managed Instance kann auch eine SQL-Anmeldung mit sysadmin-Berechtigungen eine Azure AD-Anmeldung oder einen Azure AD-Benutzer erstellen.In SQL Managed Instance, a SQL login with sysadmin permissions can also create an Azure AD login or user.

Beispiele zum Erstellen von Anmeldungen und Benutzern finden Sie unter:For examples showing how to create logins and users, see:

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.For a security tutorial that includes creating users in Azure SQL Database, see Tutorial: Secure Azure SQL Database.

Verwenden fester und benutzerdefinierter DatenbankrollenUsing fixed and custom database roles

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.After creating a user account in a database, either based on a login or as a contained user, you can authorize that user to perform various actions and to access data in a particular database. Sie können die folgenden Methoden zum Autorisieren des Zugriffs verwenden:You can use the following methods to authorize access:

  • Feste DatenbankrollenFixed database roles

    Fügen Sie das Benutzerkonto zu einer festen Datenbankrolle hinzu.Add the user account to a fixed database role. Es gibt 9 feste Datenbankrollen, die jeweils über definierte Berechtigungen verfügen.There are 9 fixed database roles, each with a defined set of permissions. Die folgenden festen Datenbankrollen werden am häufigsten verwendet: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter und db_denydatareader.The most common fixed database roles are: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter, and db_denydatareader. db_owner wird häufig verwendet, um nur einigen Benutzern uneingeschränkte Berechtigungen zu erteilen.db_owner is commonly used to grant full permission to only a few users. 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.The other fixed database roles are useful for getting a simple database in development quickly, but are not recommended for most production databases. Die feste Datenbankrolle db_datareader gewährt beispielsweise Lesezugriff auf alle Tabellen in der Datenbank. Dies ist im nicht unbedingt erforderlich.For example, the db_datareader fixed database role grants read access to every table in the database, which is more than is strictly necessary.

  • Benutzerdefinierte DatenbankrolleCustom database role

    Erstellen Sie mit der Anweisung CREATE ROLE eine benutzerdefinierte Datenbankrolle.Create a custom database role using the CREATE ROLE statement. 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.A custom role enables you to create your own user-defined database roles and carefully grant each role the least permissions necessary for the business need. Anschließend können Sie Benutzer zur benutzerdefinierten Rolle hinzufügen.You can then add users to the custom role. Wenn ein Benutzer Mitglied mehrerer Rollen ist, verfügt er über die zusammengefassten Berechtigungen all dieser Rollen.When a user is a member of multiple roles, they aggregate the permissions of them all.

  • Direktes Zuweisen von BerechtigungenGrant permissions directly

    Erteilen Sie die Berechtigungen direkt dem Benutzerkonto.Grant the user account permissions directly. Es gibt mehr als 100 Berechtigungen, die in SQL-Datenbank individuell gewährt oder verweigert werden können.There are over 100 permissions that can be individually granted or denied in SQL Database. Viele dieser Berechtigungen sind geschachtelt.Many of these permissions are nested. Die UPDATE-Berechtigung für ein Schema enthält beispielsweise für jede Tabelle des Schemas die UPDATE-Berechtigung.For example, the UPDATE permission on a schema includes the UPDATE permission on each table within that schema. Wie bei den meisten Berechtigungssystemen wird eine Gewährung durch die Verweigerung einer Berechtigung außer Kraft gesetzt.As in most permission systems, the denial of a permission overrides a grant. 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.Because of the nested nature and the number of permissions, it can take careful study to design an appropriate permission system to properly protect your database. Beginnen Sie mit der Liste der Berechtigungen unter Berechtigungen (Datenbank-Engine), und sehen Sie sich die Grafik in Postergröße mit den Berechtigungen an.Start with the list of permissions at Permissions (Database Engine) and review the poster size graphic of the permissions.

Verwenden von GruppenUsing groups

Bei der effizienten Zugriffsverwaltung werden Berechtigungen verwendet, die Active Directory-Sicherheitsgruppen sowie festen oder benutzerdefinierten Rollen anstelle einzelner Benutzer zugewiesen werden.Efficient access management uses permissions assigned to Active Directory security groups and fixed or custom roles instead of to individual users.

  • Wenn Sie die Active Directory-Authentifizierung verwenden, fügen Sie Azure Active Directory-Benutzer in Azure Active Directory-Sicherheitsgruppen ein.When using Azure Active Directory authentication, put Azure Active Directory users into an Azure Active Directory security group. Erstellen Sie einen eigenständigen Datenbankbenutzer für die Gruppe.Create a contained database user for the group. 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.Add one or more database users as a member to custom or builtin database roles with the specific permissions appropriate to that group of users.

  • Wenn Sie die SQL-Authentifizierung verwenden, erstellen Sie eigenständige Datenbankbenutzer in der Datenbank.When using SQL authentication, create contained database users in the database. Weisen Sie mindestens einem Datenbankbenutzer eine benutzerdefinierte Datenbankrolle mit spezifischen Berechtigungen zu, die der jeweiligen Benutzergruppe entspricht.Place one or more database users into a custom database role with specific permissions appropriate to that group of users.

    Hinweis

    Sie können auch nicht eigenständige Datenbankbenutzer gruppieren.You can also use groups for non-contained database users.

Machen Sie sich mit den folgenden Features zum Einschränken oder Erweitern von Berechtigungen vertraut:You should familiarize yourself with the following features that can be used to limit or elevate permissions:

Nächste SchritteNext steps

Eine Übersicht über alle Sicherheitsfunktionen von Azure SQL-Datenbank und SQL Managed Instance finden Sie unter Sicherheit – Überblick.For an overview of all Azure SQL Database and SQL Managed Instance security features, see Security overview.