Sdílet prostřednictvím


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.

Předdefinované objekty zabezpečení Windows

I když SQL Server v Linuxu běží pod účtem mssql operačního systému, existují následující objekty zabezpečení Windows na vrstvě SQL Serveru kvůli kompatibilitě. 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 Systému Windows SYSTEM . Je stále vytvářeno tak, aby skripty pro různé platformy měly úspěch.
NT AUTHORITY\NETWORK SERVICE sysadmin (bez pevné role) 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ě. SQL Server samotný databázový stroj na Linuxu nepoužívá.

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

Účel Výchozí cesta Podrobnosti
Systémové a uživatelské databáze /var/opt/mssql/data Zahrnuje master, model, tempdb a všechny nové databáze, pokud je mssql-conf nepř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.
Zálohy /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

Agenta 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) Distribuční společnost 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 (nabízení) 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
Od distributora k odběrateli
Stejné jako u distribučního agenta (push), ale oprávnění ke sdílení snímků platí pro hostitele předplatitele.
Agent pro slučování mssql Vydavatel, Distributor, Odběratel db_owner v distribuci. Člen PAL. Čtení složky snímků Čtení a zápis v databázích publikování a odběrů
Agent pro čtení fronty mssql Distribuční společnost db_owner v distribuci. Připojí se k Publisheru pomocí db_owner v databázi publikace.

Osvědčené postupy

Uživatel mssql a skupina, které SQL Server používá, 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 ověřování Systému Windows pro SQL Server v Linuxu, 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í 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.