Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/8 33 82-0

Azure SQL Datenbanken – Getting started!

Im vorliegenden Beitrag geht es um die Erstellung und Verwaltung einer Azure SQL Datenbank. Besonderes Augenmerk wird auf das Tooling für die Verwaltung gelegt. Darin eingeschlossen sind erforderliche Firewall-Einstellungen sowie ein Tool-Vergleich.

In letzter Zeit habe ich mich etwas intensiver mit dem Thema „Azure SQL Datenbanken“ befasst und möchte meine Erkenntnisse gern mit der Community teilen.

Im vorliegenden Beitrag möchte ich all jene mitnehmen, die ihre erste Azure SQL Datenbank erstellen wollen. Besonderes Augenmerk lege ich auf das Tooling für die Verwaltung. Darin eingeschlossen sind erforderliche Firewall-Einstellungen sowie ein Tool-Vergleich.

Weitere Beiträge sollen folgen zu den Themen:

  • Migrieren einer on-premise SQL Server Datenbank zu einer Azure SQL Datenbank
  • Verwendung einer on-premise SQL Datenbank in Azure via Gateway
  • … und bestimmt noch weiteren 🙂

Prerequisites

Um überhaupt mit Azure und Azure SQL Datenbanken starten zu können, sind zuallererst eine Registrierung in Azure sowie eine gültige Azure Subscription erforderlich. Eine Registrierung ist oftmals bereits über die Firma vorhanden, alternativ kann sich auch jeder als Privatperson kostenlos registrieren. Ebenso gibt es die Möglichkeit, ein kostenloses Test-Abonnement mit einem begrenzten Kontingent (aktuell 170 EUR/Testmonat) zu erstellen. Weitere Informationen dazu gibt es unter Azure-Anmeldung – Konto und Abrechnung.

Folgende Tutorials kann ich als Lektüre empfehlen:

Wichtig ist mir vor dem eigentlichen Start noch eine Begriffsklärung, nämlich die Unterscheidung zwischen den folgenden Termini:

  • Azure SQL Datenbank:
    • Damit ist wirklich nur eine einzelne Datenbank auf einem „logischen“ SQL Server gemeint, der irgendwo in der (Azure) Cloud beheimatet ist. Wo, wissen wir nicht und es interessiert uns auch nicht. Es ist aber „unser“ SQL Server und wir können selbstverständlich mehrere Datenbanken auf ihm erstellen.
    • Da der SQL Server nur logisch und nicht physisch existiert, haben wir natürlich auch geringere Einflussmöglichkeiten auf die Server-Konfiguration.
    • Wenn wir einen solchen logischen SQL Server erstellen, wird automatisch die neueste Azure SQL Version (aktuell V12) verwendet.
  • SQL Datenbank auf einer Azure VM:
    • Hier geht es um eine virtuelle Maschine (Windows Server), die in der (Azure) Cloud residiert.
    • Dieser Server gehört uns und wir können mit ihm tun und lassen, was wir wollen – zum Beispiel einen SQL Server installieren und Datenbanken darin erstellen.
    • Wenn wir einen solchen SQL Server erstellen, können wir selbst wählen, welche Version (z.B. SQL Server 2016) wir installieren.
    • Eine solche Datenbank ist keine Azure Datenbank im wörtlichen Sinne, sondern eine on-premise Datenbank auf einem Azure Windows Server (genau genommen auf einem on-premise SQL Server, der auf einem Azure Windows Server installiert ist)

Im vorliegenden Beitrag beziehe ich mich ausschließlich auf Azure SQL Datenbanken.

Erstellung einer Azure SQL Datenbank

Nach der Anmeldung am Azure Portal navigieren wir zu  > SQL Datenbanken > Hinzufügen. Da bei unserer ersten Datenbank noch kein logischer SQL Server in „unserem“ Azure existiert, werden wir aufgefordert, zuerst einen solchen anzulegen:

Azure SQL Datenbanken: Server erstellen

Diesen SQL Server können wir später für weitere Datenbanken verwenden. Nachdem der Server erstellt wurde, kann ein Tarif ausgewählt werden:

Azure SQL Datenbanken: Tarif

Für Evaluierungszwecke ist der Tarif „Basic“ absolut ausreichend und schont unser Kontingent.

Die weiteren auszufüllenden Eigenschaften der Datenbank sind im Wesentlichen selbsterklärend, vielleicht noch soviel dazu:

  • Als Ressourcengruppe empfehle ich eine neue Ressourcengruppe „Databases“ anzulegen und diese später ggf. für weitere Datenbanken zu verwenden.
  • Als Quelle können wir anstelle einer leeren Datenbank auch mit der Beispiel-Datenbank „AdventureWorksLT“ von MS starten. Wer damit bereits vertraut ist, wird schnell Ergebnisse erzielen können.
  • Ein elastischer SQL-Pool würde sich nur bei einer beabsichtigten größeren Anzahl an Datenbanken lohnen – er skaliert dann den Ressourcenverbrauch (und schont damit wiederum unser Kontingent). Außerdem können damit auch SQL Jobs über mehrere Datenbanken erstellt werden.

Nachdem wir alle erforderlichen Parameter ausgefüllt und auf „Erstellen“ geklickt haben, wird unsere neue Datenbank im Hintergrund angelegt. Dies dauert in der Regel einige Minuten.

Spätestens jetzt wird die Frage interessant, wie wir eine Azure SQL Datenbank verwalten können 🙂

Verwaltung einer Azure SQL Datenbank

Dafür gibt es zuallererst ganz grob zwei Varianten:

  1. Im Azure Portal
  2. Mit einem Tool, welches auf einem beliebigen Rechner installiert ist.

Für Variante 1 wird lediglich ein Rechner mit Internetzugang und ein Browser benötigt. Anders sieht es bei Variante 2 aus: hierfür müssen bestimmte Voraussetzungen betreffend Firewall erfüllt sein.

Bevor ich mich den eigentlichen Verwaltungs-Tools zuwende, werde ich deshalb noch auf die betreffenden Anforderungen eingehen.

Erforderliche Firewall-Einstellungen

Firewall-Einstellungen auf dem Azure Server

Die öffentliche IP-Adresse eines Client Computers muss auf dem Azure SQL Server explizit für den Zugriff freigeschaltet sein, damit von diesem Computer aus der Zugriff möglich ist.

  • Die Einstellungen sind auf Server-Ebene (d.h. für alle Datenbanken auf dem Server) oder auf Datenbank-Ebene möglich..
    • Server-Ebene: gespeichert in master-Datenbank
    • Datenbank-Ebene: gespeichert in der betreffenden Datenbank (auch explizite Firewall-Einstellungen für „master“  sind möglich)
    • Empfehlung von Microsoft: Firewall-Regeln auf Datenbank-Ebene (um Sicherheit und Portabilität der Datenbank zu verbessern)
  • Firewall-Regeln können mit verschiedenen Tools/Methoden erstellt werden:
  • Konfiguration im Azure-Portal
    • auf Server-Ebene
      • Navigation zum SQL Server > Firewall > Firewalleinstellungen anzeigen
      • Hinzufügen und Löschen von IP-Adressen bzw. IP Ranges möglich:
        Azure SQL: Firewall-Regeln
    • auf Datenbank-Ebene
      • Navigation zur Datenbank > Serverfirewall festlegen
      • weiter bei bei Einstellung auf Server-Ebene

Firewall-Einstellungen auf dem Client

Damit ein Computer auf einen logischen Azure SQL Server zugreifen kann, müssen ausgehende Verbindungen für TCP-Port 1433 freigeschalten sein.

In Unternehmen ist dies allerdings in aller Regel geblockt und sollte explizit für den entsprechenden SQL Server (also in meinem Fall: communardo-test.database.windows.net) freigeschaltet werden.

Verwaltungs-Tools

Es gibt natürlich eine Vielzahl von Tools, die für die Verwaltung von SQL Azure Datenbanken genutzt werden können. Nachfolgend gebe ich einen Überblick über die geläufigsten Werkzeuge. Dabei ging es mir vor allem um die Frage, was mit dem jeweiligen Tool möglich (oder eben auch nicht möglich) ist. Sollten weitere Voraussetzungen für die Verwendung erforderlich sein, habe ich dies mit erwähnt.

Verwaltung im Azure Portal

  • Azure-Portal
    • Grundlegende Verwaltung
      • Datenbanken und logische Server erstellen, aktualisieren und löschen
      • Datenbankaktivitäten überwachen
  • SQL Editor im Azure Portal
    SQL Editor im Azure Portal

    • Was ist damit möglich?
      • Ausführen von TSQL innerhalb einer Datenbank
    • Was geht nicht?
      • alles andere

Verwaltung mit einem Client-Tool

  • SQL Server Management Studio (SSMS)
    • (fast) alles, was im SSMS mit OnPremise-Datenbanken geht, zum Beispiel
      • Datenbanken anlegen und verwalten
      • Verwaltung von Datenbank-Objekten (Tabellen, Stored Prozedures etc.)
      • Datenabfrage und -manipulation
    • Was geht nicht?
      • Datenbanken sichern und wiederherstellen
  • Visual Studio: SQL Server Data Tools
    Azure SQL: Verwaltung in Visual Studio

    • Hier gibt es 2 Varianten, um Verbindung herzustellen:
      • Visual Studio > SQL Server Object Explorer > Add SQL Server > Verbindungsinformationen eingeben
      • Azure Portal > SQL Server > Datenbank > Tools > In Visual Studio öffnen
    • Ähnlich SSMS, etwas eingeschränkter Funktionsumfang, zum Beispiel
      • Verwaltung von Datenbank-Objekten (Tabellen, Stored Prozedures etc.)
      • Datenabfrage und -manipulation
    • Was geht nicht?
      • Datenbanken anlegen und verwalten
      • Datenbanken sichern und wiederherstellen
  • Powershell
    Azure SQL: Zugriff via Powershell

    • Außer den o.g. Firewall-Einstellungen ist dafür noch das Azure PowerShell Module erforderlich (Download: Microsoft Github’s repository).
    • Verwalten von Datenbanken und SQL Servern, zum Beispiel
      • Datenbanken erstellen
      • Wiederherstellen, Kopieren und Importieren von Datenbanken
      • Skalierung
      • Konfiguration von Failover
    • Empfehlung für Verwendung seitens Microsoft:
      • Verwaltung einer großen Anzahl von Datenbanken
      • Automatisierung von Deployment- und Ressourcen-Änderungen in einer Produktionsumgebung

So, nun haben wir also unsere erste Azure SQL Datenbank erstellt, und diese ist – zumindest bei mir – leer 🙁

Zwar hätte ich mit den oben beschriebenen Tools die Möglichkeit, meine Datenbank mit Objekten und Inhalten zu füllen, aber mir schwebt eine andere Variante vor: ich möchte eine vorhandene on-premise SQL Server Datenbank (konkret: die gute alte Northwind) zu einer Azure SQL Datenbank migrieren.

Darüber werde ich in meinem nächsten Beitrag berichten 🙂

Kommentar hinterlassen


Pin It on Pinterest