(0) exportieren Drucken
Alle erweitern

Verwalten von Datenbanken und Anmeldungen in der Azure SQL-Datenbank

Letzte Aktualisierung: November 2014

Wenn Sie sich in Microsoft Microsoft Azure SQL-Datenbank für den Dienst registrieren, werden im Rahmen des Bereitstellungsprozesses ein Azure SQL-Datenbank-Server, eine Datenbank mit der Bezeichnung master und eine Anmeldung erstellt, die als Serverebenenprinzipal des Azure SQL-Datenbank-Servers fungiert. Diese Anmeldung ist mit dem Serverebenenprinzipal (sa) für eine lokale Instanz von SQL Server vergleichbar.

Das Serverebenenprinzipal-Konto von Azure SQL-Datenbank verfügt immer über die Berechtigung zum Verwalten der Sicherheit auf Server- und Datenbankebene. In diesem Thema wird beschrieben, wie Sie mithilfe des Serverebenenprinzipals und anderer Konten Anmeldungen und Datenbanken in Microsoft Azure SQL-Datenbank verwalten können.  

Die Sicherheitsverwaltung in Microsoft Azure SQL-Datenbank ist vergleichbar mit der Sicherheitsverwaltung für eine lokale Instanz von SQL Server. Die Verwaltung der Sicherheit auf Datenbankebene ist nahezu identisch. Der einzige Unterschied besteht in den zur Verfügung stehenden Parametern. Da Azure SQL-Datenbanken auf einen oder mehrere physische Computer skaliert werden können, kommt bei Microsoft Azure SQL-Datenbank für die Verwaltung auf Serverebene eine andere Strategie zum Einsatz. Die folgende Tabelle enthält eine Zusammenfassung der Unterschiede in puncto Sicherheitsverwaltung zwischen einer lokalen SQL Server-Instanz und Microsoft Azure SQL-Datenbank:

 

Unterschied Lokale SQL Server-Instanz Microsoft Azure SQL-Datenbank

Verwaltung der Sicherheit auf Serverebene

Ordner Sicherheit im Objekt-Explorer von SQL Server Management Studio

Die master-Datenbank

Sicherheitsrolle auf Serverebene zum Erstellen von Anmeldungen

Feste Serverrolle securityadmin

Weitere Informationen finden Sie unter Rollen auf Serverebene.

loginmanager-Datenbankrolle in der Masterdatenbank

Befehle zum Verwalten von Anmeldungen

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

(Einige Parametereinschränkungen gelten, und eine Verbindung mit der master-Datenbank ist erforderlich.)

Sicht mit allen Anmeldungen

sys.syslogins (sys.sql_logins für SQL Server-Anmeldenamen)

sys.sql_logins

(Verbindung mit der master erforderlich.)

Rolle auf Serverebene zum Erstellen von Datenbanken

Feste Datenbankrolle dbcreator

Weitere Informationen finden Sie unter Rollen auf Serverebene.

dbmanager-Datenbankrolle in der Masterdatenbank

Befehl zum Erstellen einer Datenbank

CREATE DATABASE

CREATE DATABASE

(Einige Parametereinschränkungen gelten, und eine Verbindung mit der master-Datenbank ist erforderlich.)

Löschen von Datenbanken

DROP DATABASE

DROP DATABASE

Wenn ein Benutzer die Rolle dbmanager besitzt, verfügt er für jede Datenbank über die DROP-Berechtigung – unabhängig davon, welcher Benutzer die Datenbank ursprünglich erstellt hat.

Sicht mit allen Datenbanken

sys.databases

(Sicht)

sys.databases

(Verbindung mit der master erforderlich.)

Der Azure SQL-Datenbank-Server ist eine Abstraktion, mit der eine Gruppe von Datenbanken definiert wird. Datenbanken, die dem Azure SQL-Datenbank-Server zugeordnet sind, können sich auf separaten physischen Computern im Microsoft-Rechenzentrum befindet. Die Verwaltung auf Serverebene kann für alle Datenbanken dieser Art mithilfe einer einzelnen Datenbank mit der Bezeichnung master erfolgen.

Mit der master-Datenbank wird nachverfolgt, welche Anmeldungen vorhanden und welche Anmeldungen zum Erstellen von Datenbanken oder anderen Anmeldungen berechtigt sind. Zum Erstellen (CREATE), Ändern (ALTER) oder Löschen (DROP) von Anmeldungen oder Datenbanken muss eine Verbindung mit der master-Datenbank bestehen. Für die master-Datenbank stehen auch sys.sql_logins- und sys.databases-Sichten zur Verfügung, um Anmeldungen bzw. Datenbanken anzuzeigen.

noteHinweis
Mit dem Befehl USE kann nicht zwischen Datenbanken gewechselt werden. Stellen Sie stattdessen eine direkte Verbindung mit der Zieldatenbank her.

Die Sicherheit auf Datenbankebene kann für Benutzer und Objekte in Microsoft Azure SQL-Datenbank auf die gleiche Weise verwaltet werden wie bei einer lokalen Instanz von SQL Server. Unterschiede bestehen lediglich bei den verfügbaren Parametern für die entsprechenden Befehle. Weitere Informationen finden Sie unter Referenz zu Transact-SQL (Transact-SQL).

Zum Verwalten von Anmeldungen unter Verwendung der Anmeldung des Serverebenenprinzipals muss eine Verbindung mit der master-Datenbank hergestellt werden. Die Anweisungen CREATE LOGIN, ALTER LOGIN und DROP LOGIN können verwendet werden. Im folgenden Beispiel wird eine Anmeldung mit der Bezeichnung login1 erstellt:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
noteHinweis
Anmeldungen müssen mit einem sicheren Kennwort erstellt werden. Weitere Informationen finden Sie unter Sichere Kennwörter.

Damit mit den erstellten Anmeldungen eine Verbindung mit Microsoft Azure SQL-Datenbank hergestellt werden kann, müssen jeder Anmeldung mithilfe des Befehls CREATE USER zunächst Berechtigungen auf Datenbankebene erteilt werden. Weitere Informationen hierzu finden Sie unter Erteilen von Berechtigungen auf Datenbankebene für eine Anmeldung.

Da Tabular Data Stream (TDS) in einigen Tools auf andere Weise implementiert wird, muss der Anmeldung in der Verbindungszeichenfolge mittels der <login>@<server>-Schreibweise ggf. der Azure SQL-Datenbank-Servername angefügt werden. In diesem Fall müssen Anmeldung und Azure SQL-Datenbank-Servername durch das @-Symbol getrennt werden. Lautet die Anmeldung also beispielsweise login1 und der vollqualifizierte Name des Azure SQL-Datenbank-Servers servername.database.windows.net, muss der Parameter username der Verbindungszeichenfolge folgendermaßen angegeben werden: login1@servername. Aufgrund dieser Einschränkung müssen beim Festlegen des Anmeldenamens bestimmte Regeln beachtet werden. Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).

Damit die Sicherheit auf Serverebene mit Anmeldungen verwaltet werden kann, bei denen es sich nicht um den Serverebenenprinzipal handelt, stehen in Microsoft Azure SQL-Datenbank zwei Sicherheitsrollen zur Verfügung: loginmanager (zum Erstellen von Anmeldungen) und dbmanager (zum Erstellen von Datenbanken). Nur Benutzer in der master-Datenbank können diesen Datenbankrollen hinzugefügt werden.

noteHinweis
Zum Erstellen von Anmeldungen oder Datenbanken muss eine Verbindung mit der master-Datenbank bestehen (bei der es sich um eine logische Darstellung von master handelt).

Genau wie die feste Serverrolle securityadmin für eine lokale Instanz von SQL Server verfügt die loginmanager-Datenbankrolle in Microsoft Azure SQL-Datenbank über die Berechtigung zum Erstellen von Anmeldungen. Nur die Serverebenenprinzipal-Anmeldung, die im Rahmen des Bereitstellungsprozesses erstellt wurde, oder Mitglieder, die über die loginmanager-Datenbankrolle verfügen, können neue Anmeldungen erstellen.

Die dbmanager-Datenbankrolle von Microsoft Azure SQL-Datenbank ist vergleichbar mit der festen Serverrolle dbcreator für eine lokale Instanz von SQL Server. Nur die Serverebenenprinzipal-Anmeldung, die im Rahmen des Bereitstellungsprozesses erstellt wurde, oder Mitglieder, die über die dbmanager-Datenbankrolle verfügen, können Datenbanken erstellen. Wenn ein Benutzer Mitglied der dbmanager-Datenbankrolle ist, kann eine Datenbank mit dem CREATE DATABASE-Befehl von Azure SQL-Datenbank erstellt werden, dieser Befehl muss jedoch in der master-Datenbank ausgeführt werden. Weitere Informationen finden Sie unter CREATE DATABASE (Transact-SQL).

Führen Sie die folgenden Schritte aus, um eine Anmeldung und den zugehörigen Benutzer zu erstellen, mit dem Datenbanken oder andere Anmeldungen erstellt werden können:

  1. Stellen Sie mit den Anmeldeinformationen der Serverebenenprinzipal-Anmeldung, die im Rahmen des Bereitstellungsprozesses erstellt wurde, oder mit den Anmeldeinformationen eines vorhandenen Mitglieds der loginmanager-Datenbankrolle eine Verbindung mit der master-Datenbank her.

  2. Erstellen Sie mit dem Befehl CREATE LOGIN eine Anmeldung. Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).

  3. Erstellen Sie für diese Anmeldung mithilfe des Befehls CREATE USER einen neuen Benutzer in der master-Datenbank. Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).

  4. Fügen Sie der sp_addrolememeber-Datenbankrolle und/oder der dbmanager-Datenbankrolle mithilfe der gespeicherten Prozedur loginmanager einen neuen Benutzer hinzu.

Im folgenden Codebeispiel wird das Erstellen einer Anmeldung (login1) und eines entsprechenden Datenbankbenutzers (login1User) veranschaulicht, der in der Lage ist, Datenbanken oder andere Anmeldungen zu erstellen, solange eine Verbindung mit der master-Datenbank besteht:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE USER login1User FROM LOGIN login1;
EXEC sp_addrolemember 'dbmanager', 'login1User';
EXEC sp_addrolemember 'loginmanager', 'login1User';
noteHinweis
Anmeldungen müssen mit einem sicheren Kennwort erstellt werden. Weitere Informationen finden Sie unter Sichere Kennwörter.

Alle Anmeldungen müssen in der master-Datenbank erstellt werden. Nach dem Erstellen einer Anmeldung können Sie in einer anderen Datenbank ein Benutzerkonto für diese Anmeldung erstellen. Datenbankrollen werden von Microsoft Azure SQL-Datenbank auf die gleiche Weise unterstützt wie bei einer lokalen Instanz von SQL Server.

Führen Sie die folgenden Schritte aus, um ein Benutzerkonto in einer anderen Datenbank zu erstellen. Hierbei wird davon ausgegangen, dass Sie keine Anmeldung oder Datenbank erstellt haben:

  1. Stellen Sie eine Verbindung mit der master-Datenbank her, und verwenden Sie dabei eine Anmeldung, die über die Rollen loginmanager und dbmanager verfügt.

  2. Erstellen Sie mithilfe des Befehls CREATE LOGIN eine neue Anmeldung. Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL). Die Windows-Authentifizierung wird nicht unterstützt.

  3. Erstellen Sie mithilfe des Befehls CREATE DATABASE eine neue Datenbank. Weitere Informationen finden Sie unter CREATE DATABASE (Transact-SQL).

  4. Stellen Sie eine Verbindung mit der neuen Datenbank her, und verwenden Sie dabei die Anmeldung, mit der die Datenbank erstellt wurde.

  5. Erstellen Sie mithilfe des Befehls CREATE USER einen neuen Benutzer in der neuen Datenbank. Weitere Informationen finden Sie unter CREATE USER (Transact-SQL).

Im folgenden Codebeispiel wird das Erstellen einer Anmeldung (login1) und einer Datenbank (database1) veranschaulicht:

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE DATABASE database1;
noteHinweis
Anmeldungen müssen mit einem sicheren Kennwort erstellt werden. Weitere Informationen finden Sie unter Sichere Kennwörter.

Im nächsten Beispiel wird das Erstellen eines Datenbankbenutzers (login1User) in der database1-Datenbank veranschaulicht, der der Anmeldung login1 entspricht:

-- Establish a new connection to the database1 database
CREATE USER login1User FROM LOGIN login1;

Dieses Berechtigungsmodell auf Datenbankebene in Microsoft Azure SQL-Datenbank entspricht einer lokalen Instanz von SQL Server. Informationen hierzu finden Sie in den folgenden Themen der SQL Server-Onlinedokumentation:

Identität und Zugriffssteuerung (Datenbankmodul)

Verwalten von Anmeldungen, Benutzern und Themen zur Vorgehensweise für Schemas

Lektion 2: Konfigurieren von Berechtigungen für Datenbankobjekte

noteHinweis
Sicherheitsbezogene Transact-SQL-Anweisungen in Microsoft Azure SQL-Datenbank unterscheiden sich unter Umständen geringfügig bei den zur Verfügung stehenden Parametern. Weitere Informationen finden Sie unter Transact-SQL-Referenz für die Azure SQL-Datenbank.

Verwenden Sie zum Anzeigen der Anmeldungen und Datenbanken auf dem Azure SQL-Datenbank-Server die sys.sql_logins-Sicht bzw. die sys.databases-Sicht der master-Datenbank. Im folgenden Beispiel wird das Anzeigen einer Liste mit allen Anmeldungen und Datenbanken auf dem Azure SQL-Datenbank-Server veranschaulicht:

-- first, connect to the master database
SELECT * FROM sys.sql_logins;
SELECT * FROM sys.databases; 

Siehe auch

Anzeigen:
© 2014 Microsoft