Microsoft SQL Server unter Ubuntu 16.04/18.04 installieren und einrichten


SQLServer auf Ubuntu installieren

Aus unserer Reihe zu Datenbanken und Datenbank-Plattformen sind dir MySQL, PostgreSQL, MongoDB, Redis, RethinkDB, InfluxDB, Neo4j, ArangoDB, OrientDB, Elasticsearch sowie Apache CouchDB entweder bereits bekannt oder du wirst auf die Installations- und Konfigurationsanleitungen zu diesen eventuell in Zukunft zurückgreifen. In diesem Tutorial widme ich mich der Installation und Konfiguration von Microsoft SQL Server unter Ubuntu 16.04/18.04 und werde dir die wichtigsten Kommandos nahe bringen, die du benötigst, um Datenbanken sowie Nutzer zu erstellen und diese zu verwalten.

Zum MS SQL Server

Mit dem Microsoft SQL Server – auch abgekürzt bekannt als MS SQL Server – bietet Microsoft ein relationales Datenbankmanagementsystem, dass sich – neben der privaten Nutzung – für Datawarehouse- und Business-Intelligence-Anwendungen, wie z.B. Reporting Services, Analyse Services, Integration Services oder SQL Server Data Tools (SSDT) anwenden lässt. Es lassen sich mit dem Datenbankmanagementsystem intelligente, geschäftskritische Anwendungen und besonders skalierbare Hybrid-Datenbankplattform realisieren. Auch ist es möglich damit Apps zur Online-Transaktionsverarbeitung (OLTP) mit hoher Verfügbarkeit und guter Skalierbarkeit bereit zu stellen.
Zur Formulierung von Befehlen, Queries und Funktionen dient die SQL-Variante Transact-SQL (T-SQL), die sich am SQL-Standard orientiert. Der Funktionsumfang wird jedoch um zahlreiche weitere Features erweitert. Dazu zählen beispielsweise Funktionen für die Transaktionssteuerung, für die Zeilenverarbeitung und für die Fehler- oder Ausnahmebehandlung. Für Analysefunktionen bietet der MS SQL Server zudem mit der Programmiersprache R eine eigene Statistiksprache, die direkt in der Datenbank verfügbar ist.

Installiere und konfiguriere deinen MS SQL Server

Vor der Installation updatest und upgradest du mit dem unten bereitgestellten Kommando deinen Server.

apt-get update && apt-get upgrade

Dann importierst du die GPG-Schlüssel des öffentlichen Repositories, die von apt zur Authentifizierung von Paketen von Microsoft verwendet werden.

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Als nächstes fügst du Microsoft zum Apt-Repository hinzu.

curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list

Danach addest du das Xenial Microsoft SQL-Repository zu deinem System. Die Versionsnummer des msql-server kannst du je nach Update im Kommando anpassen. Jedoch bleibt – wie im davor eingeblendeten Kommando – sowohl für die Installation unter Ubuntu 16.04 als auch unter 18.04, die Nummer 16.04 auch im unten stehenden Befehl erhalten.

curl -o /etc/apt/sources.list.d/mssql-server.list https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list

Führe im Anschluss daran erneut ein Update deines Servers durch.

apt-get update

Dann installierst du Libcurl mit dem unten gezeigten Befehl. Die Versionsnummer kannst du auch in diesem Fall je nach Aktualität anpassen.

apt install libcurl3

Schließlich installierst du den MS SQL Server.

apt-get install -y mssql-server

Sobald die Installation abgeschlossen ist, startest du den MS SQL Server mit dem folgenden Befehl neu.


systemctl restart mssql-server.service

Im nächsten Schritt setzt du das Root-Benutzerkennwort, welches Teil des Setups ist, das du wiederum mit dem unten präsentierten Kommando einleitest.

/opt/mssql/bin/mssql-conf setup

Während des Setups stehst du im Dialog mit diesem und dir wird schrittweise das im unten präsentierten Code-Block wiedergegebene Output zurückgeliefert. Bei der ersten Frage im Dialog sollst du die Information zur Edition deines zukünftigen MS SQL Servers angeben. Hier trägst du die Zahl 2 ein, wenn du die Open Source Version für Developer nutzen möchtest.

Choose an edition of SQL Server:
  1) Evaluation (free, no production use rights, 180-day limit)
  2) Developer (free, no production use rights)
  3) Express (free)
  4) Web (PAID)
  5) Standard (PAID)
  6) Enterprise (PAID)
  7) Enterprise Core (PAID)
  8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409

Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.

Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409

The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Do you accept the license terms? [Yes/No]:y

Enter the SQL Server system administrator password: 
Confirm the SQL Server system administrator password: 
The passwords do not match. Please try again.
Enter the SQL Server system administrator password: 
Confirm the SQL Server system administrator password: 
Configuring SQL Server...

ForceFlush is enabled for this instance. 
ForceFlush feature is enabled for log durability.
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

Füge im Anschluss daran /opt/mssql-tools/bin/ zu den PATH-Umgebungsvariablen deines Servers hinzu. Du änderst hierbei den PATH in der Datei ~/.bash_profile, was dazu führt, dass die SQL Server-Kommandoschnittstelle für Anmeldesitzungen über deine Bash-Shell zugänglich wird.

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

Schließlich änderst du den PATH noch mit den beiden folgenden Kommandos, sodass die Server-Kommandoschnittstelle auch für interaktive Sessions, bzw. Nicht-Login-Sitzungen zugänglich wird.

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

Nutze daraufhin dann die folgenden beiden Befehle, um deinen Server upzudaten, MS SQL tools und das unixODBC plugin zu installieren.

apt-get update
apt-get install mssql-tools unixodbc-dev

Getting started mit dem MS SQL Server

Mit dem Code aus dem unten eingeblendeten Snippet ist es dir möglich die Kommandoschnittstelle von SQL Server zu erreichen. Hierbei musst du jedoch den Platzhalter localhost mit der IP deines Servers austauschen.

sqlcmd -S localhost -U SA

Nach Eingabe des daraufhin geforderten Passworts hast du Zugang zur Kommandoschnittstelle von SQL Server.

Datenbanken sowie Nutzer anlegen und verwalten

Eine Datenbank erstellst du, indem du die beiden unten gezeigten Befehle in der Kommandoschnittstelle des SQL Servers ausführst. testdb ist der Name der Datenbank. Diesen Platzhalter kannst du nach deinem Belieben anpassen. Generell gilt für jeden Befehl, dass du diesen mit dem GO-Kommando bestätigen musst.

> CREATE DATABASE testdb

> GO

Löschen kannst du eine Datenbank, indem du die folgenden beiden Kommandos nutzt.

> DROP DATABASE testdb

> GO

Sobald die betreffende Datenbank existiert, kann sie genutzt werden. Um schließlich Operationen in der Datenbank anzuwenden, wie z.B. Tabellen anlegen, löschen oder nach Daten suchen, musst du mittels dem unten eingeblendeten USE-Befehl in diese wechseln.

> USE testdb

> GO

Möchtest du hingegen einen Nutzer erstellen, der Rechte auf eine bestimmte Datenbank haben soll, dann tust du dies, indem du zunächst in die master-Datenbank wechselst, wie im Code-Snippet unten vorgeführt.

> USE master

> GO

Dann würdest du mit den nächsten beiden Befehlen dafür sorgen, dass ein Nutzer mit Zugang zu einer Datenbank erstellt wird. Das impliziert, dass der betreffende Server-Datenbankbenutzer die Berechtigung hat, eine Verbindung mit der Datenbank herzustellen und Tabellen, Indizes und andere Einschränkungen zu erstellen und zu löschen sowie Daten in die neu erstellte Datenbank einzufügen und zu löschen. Auch in diesem Fall kannst du die Platzhalter testuser (Nutzername) und testdb (Datenbankname) nach Belieben anpassen.

> CREATE LOGIN testuser WITH PASSWORD=N'password', DEFAULT_DATABASE=testdb, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF

> GO

Mit den unten präsentierten Kommandos kannst du dann schließlich noch sicherstellen, dass der SQL Server im entsprechenden Authentifizierungsmodus ausgeführt wird. Wäre der betreffende Benutzer keiner vertrauenswürdigen SQL-Verbindung zugeordnet, würde beim Starten des ein oder anderen Servers, der mit deiner Datenbank in Verbindung steht, eine Fehlermeldung geworfen werden.

> ALTER AUTHORIZATION ON DATABASE::testdb TO testuser

> GO

Wenn du zwischenzeitlich eine zusätzliche Datenbank erstellen würdest, wie z.B. die Datenbank testdb2 und diese nun als default-Datenbank des Nutzers testuser festlegen wollen würdest, könntest du das mit den unten eingeblendeten Befehlen umsetzen.


> ALTER LOGIN testuser WITH DEFAULT_DATABASE=testdb2

> GO

Zum Thema Rechte und Rollen zeige ich dir schließlich auch noch ein paar Kommandos. Um einem Nutzer bestimmte Rechte an oder Rollen in einer Datenbank zuzuweisen, begibst du dich vorab in die betreffende Datenbank. In diesem Fall tue ich das für die Datenbank testdb vor dem Hintergrund, dass diese Datenbank nach wie vor die default-Datenbank für den Nutzer testuser ist.


> USE testdb

> GO

Dort erstelle ich den Nutzer testuser und stelle eine Referenz zum Login testuser her.


> CREATE USER testuser FOR LOGIN testuser

> GO

Mit den folgenden vier Befehlen weise ich dem Nutzer testuser bestimmte Rechte an der Datenbank testdb zu. Ich kann definieren, dass der Nutzer Tabellen anlegen,


> GRANT CREATE TABLE TO testuser

> GO

Daten auslesen,


> GRANT SELECT TO testuser

> GO

Daten schreiben


> GRANT INSERT TO testuser

> GO

und Daten löschen darf.


> GRANT DELETE TO testuser

> GO

Alternativ könnte man dem Nutzer testuser aber auch direkt die Rolle des Datenbank-Besitzers zuweisen, was implizieren würde, dass dieser Nutzer sämtliche Rechte an der betreffenden Datenbank hätte.


> EXEC sp_addrolemember N'db_owner', N'testuser'

> GO

Den Kompatibilitätsgrad einer Datenbank kannst du dir anzeigen lassen und diesen bei Bedarf auch ändern. Hierfür solltest du zunächst in die master-Datenbank wechseln.


> USE master

> GO

Über ein SELECT-Statement kannst du dir den Kompabilitätsgrad für jede x-beliebige Datenbank anzeigen lassen. In meinem Beispiel tue ich das für die zuvor erstellte testdb-Datenbank.


> SELECT compatibility_level FROM sys.databases WHERE name = 'testdb'

> GO

Den Kompatibilitätsgrad kannst du mit folgendem Kommando ändern. Erneut zeige ich dies für meine testdb-Datenbank. Ich setze den Kompabilitätsgrad auf 120, was einer Kompatibilität mit MS SQL Server Version 2014 entspricht. Eine Übersicht zu den Kompatibilitätsgraden pro MS SQL Server Version findest du in der Dokumentation zum MS SQL Server.


> ALTER DATABASE jiradb SET COMPATIBILITY_LEVEL = 120

> GO

Die Abfrage nach dem Kompatibilitätsgrad via dem oben gezeigten SELECT-Statement würde das im Code-Snippet unten gezeigte Output wiedergeben.


compatibility_level
-------------------
                120

(1 rows affected)

Mit dem EXIT-Befehl kannst du die Kommandoschnittstelle vom SQL Server jederzeit wieder verlassen.

Fazit

Du hast eine Anleitung zur Hand, den MS SQL Server auf deinem Ubuntu 16.04/18.04 startklar zu machen und die Datenbankverwaltung anzugehen. Des Weiteren bietet dir die online zugängliche Dokumentation des MS SQL Servers eine umfassende Übersicht zur Handhabung von Queries und Funktionen. Viel Erfolg bei der Umsetzung deiner Projekte und Ideen!

Zurück zur Tutorial Übersicht Back to Tutorial Overview

© 2002-2023 Phox inc. all rights reserved.

© 2002-2023 Phox inc. all rights reserved.