Udostępnij za pośrednictwem


SQL Server on Linux — przewodnik po zabezpieczeniach i uprawnieniach

W tym artykule opisano wymagane konta usług i uprawnienia systemu plików dla SQL Server on Linux. Aby uzyskać więcej informacji na temat uprawnień systemu Windows dla SQL Server, zobacz Konfigurowanie kont i uprawnień usługi Windows.

Wbudowane podmioty Windows

Mimo że SQL Server on Linux działa w ramach konta systemu operacyjnego mssql, następujące zasady Windows istnieją na poziomie SQL Server dla zgodności. Nie usuwaj ani nie odrzucaj ich, chyba że w pełni rozumiesz zagrożenia.

Dyrektor Domyślna rola SQL Server Szczegóły
BUILTIN\Administrators administrator systemu Mapuje do administratorów na poziomie głównym hosta. Niektóre obiekty systemowe są uruchamiane w kontekście tego konta.
NT AUTHORITY\SYSTEM public Identyfikator usługi (SID) zarezerwowany dla konta Windows SYSTEM. Mimo to utworzono skrypty międzyplatformowe, które oczekują jej powodzenia.
NT AUTHORITY\NETWORK SERVICE Brak (tylko zgodność) Historycznie domyślne konto uruchamiania dla kilku usług SQL Server w Windows. Obecny tylko w przypadku zgodności z poprzednimi wersjami. Nieużytowane przez sam SQL Server on Linux Database Engine.

Własność plików i katalogów

Wszystkie pliki w folderze /var/opt/mssql muszą być własnością mssql użytkownika i mssql grupy (mssql:mssql) z dostępem do odczytu i zapisu dla obu tych plików. Jeśli zmienisz domyślną umask (0022) lub użyjesz alternatywnych punktów montowania, musisz ponownie zastosować te uprawnienia ręcznie.

Domyślne uprawnienia dla mssql folderu są następujące:

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/

Domyślne uprawnienia do zawartości mssql folderu są następujące:

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/

Aby uzyskać więcej informacji na temat zmiany lokalizacji danych użytkownika, lokalizacji pliku dziennika lub systemowych lokalizacji bazy danych i dzienników, zobacz Konfigurowanie SQL Server on Linux za pomocą narzędzia mssql-conf.

Typowe katalogi SQL Server

Przeznaczenie Ścieżka domyślna Szczegóły
Bazy danych systemu i użytkowników /var/opt/mssql/data Zawiera master, model, tempdb oraz wszelkie nowe bazy danych, chyba że program mssql-conf je przekierowuje. Aby uzyskać więcej informacji, zobacz Zmienianie domyślnej lokalizacji dla systemowych baz danych.
Dzienniki transakcji (jeśli są oddzielone) /var/opt/mssql/data lub ścieżka ustawiona za pomocą mssql-conf set filelocation.defaultlogdir. Zachowaj tę samą własność, jeśli przeniesiesz dzienniki transakcji. Aby uzyskać więcej informacji, zobacz Zmienianie domyślnej lokalizacji danych lub katalogu dziennika.
Backups /var/opt/mssql/data Utwórz i ustaw z chown przed pierwszą kopią zapasową lub podczas mapowania woluminu lub katalogu. Aby uzyskać więcej informacji, zobacz Zmienianie domyślnej lokalizacji katalogu kopii zapasowej.
Dzienniki błędów i dzienniki zdarzeń rozszerzonych (XE) /var/opt/mssql/log Hostuje również domyślną sesję XE kondycji systemu. Aby uzyskać więcej informacji, zobacz Zmienianie domyślnej lokalizacji katalogu pliku dziennika błędów.
Zrzuty pamięci /var/opt/mssql/log Służy do zrzutów rdzeni i DBCC CHECK* zrzutów. Aby uzyskać więcej informacji, zobacz Zmienianie domyślnej lokalizacji katalogu zrzutu.
Tajemnice zabezpieczeń /var/opt/mssql/secrets Przechowuje certyfikaty TLS, klucze główne kolumn itp.

Minimalne role SQL Server dla każdego agenta

Przedstawiciel Działa jako (Linux) Nawiązuje połączenie z Wymagane role/prawa bazy danych
Agent Migawki mssql (za pośrednictwem zadania agenta SQL) Distributor db_owner w bazie danych dystrybucji; odczyt/zapis w folderze migawki
Agent odczytu logów mssql Wydawca i Dystrybutor db_owner w bazie danych publikacji i dystrybucji. Może być potrzebny administrator systemu podczas inicjowania z kopii zapasowej
Agent Dystrybucji (push) mssql Dystrybutor do subskrybenta db_owner w dystrybucji; db_owner w bazie danych subskrypcji. Odczytaj folder migawki. Członek PAL.
Agent dystrybucji (pull) mssql (na subskrybenta) Subskrybent do dystrybutora
Dystrybutor do subskrybenta
Taki sam jak Distribution Agent (push), ale uprawnienia do udziału migawki mają zastosowanie na hoście subskrybenta
Merge Agent mssql Wydawca, dystrybutor, subskrybent db_owner w dystrybucji. Członek PAL. Odczytaj folder migawki. Odczyt/zapis w bazach danych publikacji i subskrypcji.
Agent czytnika kolejek mssql Distributor db_owner w dystrybucji. Nawiązuje połączenie z Publisher za pomocą db_owner w bazie danych publikacji.

Najlepsze rozwiązania

Użytkownik i grupa mssql używane przez SQL Server jest domyślnie kontem bez logowania i powinny być przechowywane w ten sposób. Do celów bezpieczeństwa należy użyć Windows authentication do SQL Server on Linux tam, gdzie to możliwe. Aby uzyskać więcej informacji na temat konfigurowania uwierzytelniania Windows dla SQL Server na Linuxie, zobacz Samouczek: użycie adutil do konfigurowania uwierzytelniania Active Directory z SQL Server na Linuxie.

Ogranicz uprawnienia do plików dalej (za pomocą polecenia chmod 700) zawsze, gdy katalog nie potrzebuje dostępu do grupy.

Podczas wiązania katalogów hosta lub udziałów NFS z kontenerami lub maszynami wirtualnymi, najpierw je utwórz, a następnie mapuj identyfikator UID 10001 (domyślna wartość dla mssql).

Unikaj udzielania administratorowi systemu logowania do aplikacji. Zamiast tego należy używać szczegółowych ról i opakowań EXECUTE AS. Wyłącz lub zmień nazwę konta po utworzeniu sa innego konta administratora systemu . Aby uzyskać więcej informacji, zobacz Wyłącz konta SA jako najlepszą praktykę.