SQL Server v Linuxu – Průvodce zabezpečením a oprávněními

Tento článek popisuje požadované účty služeb a oprávnění systému souborů pro SQL Server v Linuxu. Další informace o SQL Serveru v oprávněních systému Windows naleznete v tématu Konfigurace účtů a oprávnění služby Systému Windows.

Integrované principy Windows

I když SQL Server on Linux běží pod účtem operačního systému mssql, existují následující objekty zabezpečení Windows ve vrstvě SQL Server kvůli zajištění kompatibility. Neodstraňujte je ani neodmítejte, pokud plně nerozumíte rizikům.

Ředitel školy Výchozí role SQL Serveru Podrobnosti
BUILTIN\Administrators Správce systému Odpovídá kořenovým správcům hostitele. Některé systémové objekty se spouštějí v kontextu tohoto účtu.
NT AUTHORITY\SYSTEM public Identifikátor služby (SID) vyhrazený pro účet Windows SYSTEM. Je stále vytvářeno tak, aby skripty pro různé platformy měly úspěch.
NT AUTHORITY\NETWORK SERVICE Žádné (pouze kompatibilita) Historicky je výchozím spouštěcím účtem pro několik služeb SQL Serveru ve Windows. Je k dispozici pouze kvůli zpětné kompatibilitě. Není využíván samotným SQL Server on Linux Database Engine.

Vlastnictví souborů a adresářů

Všechny soubory ve složce /var/opt/mssql musí vlastnit mssql uživatel a mssql skupina (mssql:mssql) s přístupem pro čtení i zápis pro oba soubory. Pokud změníte výchozí umask (0022) nebo použijete alternativní přípojné body, musíte tato oprávnění znovu použít ručně.

Výchozí oprávnění pro mssql složku jsou následující:

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/

Výchozí oprávnění pro obsah mssql složky jsou následující:

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/

Další informace o tom, jak změnit umístění uživatelských dat, umístění souboru protokolu nebo systémovou databázi a umístění protokolů, najdete v tématu Konfigurace SQL Serveru v Linuxu pomocí nástroje mssql-conf.

Typické adresáře SQL Serveru

Purpose Výchozí cesta Podrobnosti
Systémové a uživatelské databáze /var/opt/mssql/data Zahrnuje master, modela tempdbvšechny nové databáze, pokud mssql-conf je přesměruje. Další informace naleznete v tématu Změna výchozího umístění pro systémové databáze.
Transakční protokoly (pokud jsou oddělené) /var/opt/mssql/datanebo cestu nastavenou přes mssql-conf set filelocation.defaultlogdir. Pokud přesouváte transakční protokoly, ponechte stejné vlastnictví. Další informace najdete v tématu Změna výchozího umístění dat nebo adresáře protokolu.
Backups /var/opt/mssql/data Vytvořte a nastavte pomocí chown před prvním zálohováním nebo při mapování svazku či adresáře. Další informace najdete v tématu Změna výchozího umístění záložního adresáře.
Protokoly chyb a protokoly rozšířených událostí (XE) /var/opt/mssql/log Hostuje také výchozí relaci XE stavu systému. Další informace najdete v tématu Změna výchozího umístění adresáře souboru protokolu chyb.
Výpisy paměti /var/opt/mssql/log Používá se pro výpisy paměti jádra a DBCC CHECK* výpisy. Další informace najdete v tématu Změna výchozího umístění adresáře výpisu paměti.
Tajné kódy zabezpečení /var/opt/mssql/secrets Ukládá certifikáty TLS, hlavní klíče sloupců atd.

Minimální role SQL Serveru pro každého agenta

Agent Běží jako (Linux) Připojí se k Požadované databázové role nebo práva
Agent snímků mssql (prostřednictvím úlohy agenta SQL) Distributor db_owner v distribuční databázi; čtení a zápis ve složce snímků
Agent pro čtení logu mssql Vydavatel a distributor db_owner v databázi a distribuci publikace. Při použití inicializace ze zálohy může být potřeba správce systému.
Distribuční agent (push) mssql Distributor k odběrateli db_owner v distribuci; db_owner v databázi předplatného. Přečtěte si složku snapshotů. Člen PAL.
Distribuční agent (pull) mssql (pro předplatitele) Odběratel u distributora
Distributor k odběrateli
Stejné jako Distribution Agent (push), ale oprávnění ke sdílení snímků platí na hostiteli odběratele.
Agent pro slučování mssql Vydavatel, Distributor, Odběratel db_owner v distribuci. Člen PAL. Přečtěte si složku snapshotů. Čtení a zápis v databázích publikování a odběrů
Agent pro čtení fronty mssql Distributor db_owner v distribuci. Připojí se k Publisheru pomocí db_owner v databázi publikace.

Doporučené postupy

Uživatel a skupina mssql, které používají SQL Server, je ve výchozím nastavení účet bez přihlášení a měl by být tímto způsobem zachován. Pro účely zabezpečení použijte Windows authentication pro SQL Server on Linux, pokud je to možné. Další informace o tom, jak nakonfigurovat ověřování systému Windows pro SQL Server v Linuxu, najdete v tématu Kurz: Použití nástroje adutil ke konfiguraci ověřování služba Active Directory s SQL Serverem v Linuxu.

Pokud adresář nepotřebuje přístup ke skupině, omezte oprávnění k souborům dál (pomocí příkazu chmod 700).

Při vazbě adresářů hostitelů nebo sdílených složek NFS do kontejnerů nebo virtuálních počítačů je nejprve vytvořte a poté mapujte UID 10001 (výchozí hodnota pro mssql).

Vyhněte se udělení oprávnění správce systému pro přihlášení aplikací. Místo toho používejte podrobné role a EXECUTE AS obálky. Po vytvoření jiného sa účtu správce systému účet zakažte nebo přejmenujte. Další informace najdete v tématu Zakázání účtu SA jako osvědčený postup.