Azure


Benutzer in Azure SQL DB anlegen

Nach dem Anlegen einer Datenbank unter Microsoft Azure folgt als nächster Schritt in der Regel die Anlage eines Benutzer, der in der entsprechenden Datenkbank berechtigt werden soll.

Leider gibt es in der Weboberfläche des Azure Portals dazu aktuell keine direkte Möglichkeit. Dort kann lediglich der Administartions-Benutzer für den DB Server konfiguriert werden. Aus Sicherheitsgründen sollte dieser aber natürlich nicht der Benutzer sein, mit dem man später aus der eigenen Anwendung aus auf die Datenbank zugreift.

Bei einer lokalen SQL Server Installation würde man an dieser Stelle nun das SQL Server Management Studio öffnen und den Benutzer dort komfortabel über die Oberfläche anlegen. Versucht man dies bei einer Azure SQL DB, so muss man ernüchternd fesstellen, dass diese Oberfläche für Azure SQL Datenbanken nicht verfügbar ist.

Mit T-SQL zum Ziel

Stattdessen muss man die Nutzeranlage mit T-SQL vornehmen. Dazu verbindet man sich mit einem beliebigen SQL Client, z. B. dem SQL Server Management Studio oder dem Azure Data Studio mit einem administrativen Benutzer dem entsprechenden Datenbankserver mit der Datenbank master und führt folgendes SQL Statement aus um einen Login anzulegen:

CREATE LOGIN [MeinUser] WITH PASSWORD=N'Test!987'
GO

MeinUser und Test!987 sind an dieser Stelle natürlich nur Platzhalter für den tatsächlichen Benutzernamen und das entsprechende Passwort.

Nach dem der Login nun auf dem Server bekannt ist, müssen wir im nächsten Schritt einen Benutzer für den Login in der Zieldatenbank (in der Regel nicht master anlegen). So einen Benutzer benötigen wir übrigens für jede Datenbank, auf die der Login Zugriff erhalten soll.

Zu diesem Zweck wechseln wir also zunächst in unserem SQL Client in die entsprechende Datenbank, z. B. über use [MeineDatenbank] und führen anschließend folgendes Statement aus.

CREATE USER [MeinUser] FOR LOGIN [MeinUser]  WITH DEFAULT_SCHEMA=[dbo]
GO

Zu guter letzt müssen wir dem Benutzer dann noch eine passende Rolle entsprechend der gewünschten Zugriffsrechte geben.

Soll der Benutzer z. B. Daten lesen und schreiben, Datenbankstrukturen aber nicht verändern können, dann wären die Gruppen db_datareader und db_datawriter passend.

EXEC sp_addrolemember 'db_datareader', 'MeinUser';
EXEC sp_addrolemember 'db_datawriter', 'MeinUser';
GO