Sicherheits- und Berechtigungsleitfaden für SQL Server für Linux

In diesem Artikel werden die erforderlichen Dienstkonten und Dateisystemberechtigungen für SQL Server unter Linux beschrieben. Weitere Informationen zu SQL Server unter Windows-Berechtigungen finden Sie unter Konfigurieren von Windows-Dienstkonten und -berechtigungen.

Integrierte Windows-Prinzipien

Obwohl SQL Server unter Linux unter dem mssql Betriebssystemkonto ausgeführt wird, sind die folgenden Windows-Prinzipale auf der SQL Server-Ebene zur Kompatibilität vorhanden. Entfernen oder verzichten Sie nur auf sie, wenn Sie die Risiken vollumfänglich verstehen.

Schulleiter Sql Server-Standardrolle Details
BUILTIN\Administrators sysadmin Wird den Root-Level-Administratoren des Hosts zugeordnet. Bestimmte Systemobjekte werden im Kontext dieses Kontos ausgeführt.
NT AUTHORITY\SYSTEM Öffentlich Sicherheitskennung (SID), reserviert für das Windows-KontoSYSTEM. Es wurde immer noch so entwickelt, dass plattformübergreifende Skripte, die es erwarten, erfolgreich sind.
NT AUTHORITY\NETWORK SERVICE Keine (nur Kompatibilität) Historisch das Standardstartkonto für mehrere SQL Server-Dienste unter Windows. Nur aus Gründen der Abwärtskompatibilität vorhanden. Wird nicht vom SQL Server für Linux Datenbank-Engine selbst verwendet.

Datei- und Verzeichnisbesitz

Der mssql Benutzer und mssql die Gruppe (mssql:mssql) müssen alle Dateien unter dem /var/opt/mssql Ordner besitzen, mit Lese- und Schreibzugriff für beide. Wenn du das Standard-Umask (0022) änderst oder alternative Mount-Punkte verwendest, musst du diese Berechtigungen manuell erneut anwenden.

Die Standardberechtigungen für den mssql Ordner sind wie folgt:

drwxr-xr-x  3 root  root  4096 May 14 17:17 ./
drwxr-xr-x 13 root  root  4096 Jan  7  2025 ../
drwxrwx---  7 mssql mssql 4096 May 14 17:17 mssql/

Die Standardberechtigungen für den Inhalt des mssql Ordners sind wie folgt:

drwxrwx--- 7 mssql mssql 4096 May 14 17:17 ./
drwxr-xr-x 3 root  root  4096 May 14 17:17 ../
drwxr-xr-x 5 mssql mssql 4096 May 14 17:17 .system/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 data/
drwxr-xr-x 3 mssql mssql 4096 Sep 16 22:57 log/
-rw-r--r-- 1 root  root    85 May 14 17:17 mssql.conf
drwxrwxr-x 2 mssql mssql 4096 May 14 17:17 secrets/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 security/

Weitere Informationen zum Ändern des Speicherorts der Benutzerdaten, des Protokolldateispeicherorts oder der Systemdatenbank und Protokollspeicherorte finden Sie unter Konfigurieren von SQL Server unter Linux mit dem Mssql-conf-Tool.

Typische SQL Server-Verzeichnisse

Purpose Standardpfad Details
System- und Benutzerdatenbanken /var/opt/mssql/data Umfasst master, model, tempdb und alle neuen Datenbanken, sofern mssql-conf sie nicht umleitet. Weitere Informationen finden Sie unter Ändern des Standardspeicherorts für Systemdatenbanken.
Transaktionsprotokolle (sofern getrennt) /var/opt/mssql/data, oder der über mssql-conf set filelocation.defaultlogdir festgelegte Pfad. Behalten Sie das gleiche Eigentum bei, wenn Sie Transaktionsprotokolle verschieben. Weitere Informationen finden Sie unter Ändern des Standarddaten- oder Protokollverzeichnisspeicherorts.
Backups /var/opt/mssql/data Erstellen und legen Sie das mit chown vor der ersten Sicherung oder bei der Zuordnung eines Volumes oder Verzeichnisses fest. Weitere Informationen finden Sie unter Ändern des Standardspeicherorts für das Sicherungsverzeichnis.
Fehlerprotokolle und erweiterte Ereignisprotokolle (XE-Protokolle) /var/opt/mssql/log Hostet außerdem die Standard-System-Health XE-Sitzung. Weitere Informationen finden Sie unter Ändern des Speicherorts der Standardfehlerprotokolldatei.
Speicherabbilder /var/opt/mssql/log Lagert Core-Dumps und DBCC CHECK* Dumps. Weitere Informationen finden Sie unter Standard-Dump-Verzeichnis ändern.
Geheime Sicherheitsschlüssel /var/opt/mssql/secrets Speichert Einträge wie TLS-Zertifikate und Spalten-Hauptschlüssel.

Minimale SQL Server-Rollen für jeden Agent

Agent Läuft als (Linux) Verbindung mit Erforderliche Datenbankrollen/-rechte
Schnappschuss-Agent mssql (über SQL-Agent-Job) Verteiler db_owner in der Verteilungsdatenbank; Lese-/Schreibzugriff auf dem Schnappschussordner
Protokolllese-Agent mssql Verleger & Vertrieb db_owner in der Veröffentlichungsdatenbank und Distribution. Möglicherweise braucht man Sysadmin, wenn du Initialize from Backup verwendest
Push-Verteilungsagent mssql Verteiler für Abonnenten db_owner in der Verteilungsdatenbank; db_owner in der Abonnementdatenbank. Ordner mit Momentaufnahmen lesen. PAL-Mitglied.
Verteilungs-Agent (Pull) mssql (auf Abonnent) Abonnent an Distributor
Verteiler für Abonnenten
Identisch mit Verteilungs-Agent (Push), aber Snapshot-Freigabeberechtigungen gelten für den Abonnenten-Host.
Zusammenführungs-Agent mssql Publisher, Distributor, Abonnent db_owner in der Distribution. PAL-Mitglied. Ordner mit Momentaufnahmen lesen. Lese-/Schreibzugriff in Publikations- und Abonnementdatenbanken.
Warteschlangenlese-Agent mssql Verteiler db_owner in der Distribution. Stellt eine Verbindung mit Publisher mit db_owner in der Publikationsdatenbank her.

Bewährte Methoden

Der Benutzer und die mssql Gruppe, die SQL Server verwendet, ist standardmäßig ein Nicht-Login-Konto. Behalte es aus Sicherheitsgründen so. Verwenden Sie Windows-Authentifizierung für SQL Server für Linux, wo möglich. Weitere Informationen zum Konfigurieren der Windows-Authentifizierung für SQL Server unter Linux finden Sie im Lernprogramm: Verwenden von Adutil zum Konfigurieren der Active Directory-Authentifizierung mit SQL Server unter Linux.

Beschränken Sie Dateiberechtigungen weiter (mithilfe des Befehls chmod 700), wenn das Verzeichnis keinen Gruppenzugriff benötigt.

Wenn Sie Host-Verzeichnisse oder NFS-Shares in Container oder virtuelle Maschinen binden, erstellen Sie diese zuerst und mappen dann UID 10001 (standardmäßig ).mssql

Vermeiden Sie es, sysadmin für Anwendungs-Login-Daten zu gewähren. Verwenden Sie stattdessen granulare Rollen und EXECUTE AS-Wrapper. Deaktiviere oder benenne das sa Konto um, sobald du ein weiteres Sysadmin-Konto erstellt hast. Weitere Informationen finden Sie unter Deaktivieren des SA-Kontos als bewährte Methode.