Condividi tramite


SQL Server in Linux - Guida alla sicurezza e alle autorizzazioni

Questo articolo descrive gli account di servizio necessari e le autorizzazioni del file system per SQL Server in Linux. Per altre informazioni sulle SQL Server sulle autorizzazioni di Windows, vedere Configurare gli account e le autorizzazioni del servizio Windows.

Principali di Windows predefiniti

Anche se SQL Server in Linux viene eseguito con l'account del sistema operativo mssql, esistono le entità di Windows seguenti a livello di SQL Server per la compatibilità. Non rimuoverle o negarle, a meno che non si comprendano appieno i rischi.

Principale Ruolo di SQL Server predefinito Dettagli
BUILTIN\Administrators sysadmin Mappa agli amministratori a livello radice dell'host. Alcuni oggetti di sistema vengono eseguiti nel contesto di questo account.
NT AUTHORITY\SYSTEM public Identificatore del servizio (SID) riservato per l'account Windows SYSTEM. Ancora creato in modo che gli script multipiattaforma abbiano esito positivo.
NT AUTHORITY\NETWORK SERVICE Nessuno (solo compatibilità) Storicamente l'account di avvio predefinito per diversi servizi SQL Server in Windows. Presente solo per la compatibilità con le versioni precedenti. Non utilizzato dal SQL Server in Linux motore di database stesso.

Proprietà di file e directory

Tutti i file nella cartella /var/opt/mssql devono essere di proprietà dell'utente mssql e del gruppo mssql (mssql:mssql), con accesso in lettura e scrittura per entrambi. Se si modifica l'umask predefinito (0022) o si usano punti di montaggio alternativi, è necessario riapplicare manualmente queste autorizzazioni.

Le autorizzazioni predefinite per la mssql cartella sono le seguenti:

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/

Le autorizzazioni predefinite per il contenuto della mssql cartella sono le seguenti:

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/

Per altre informazioni su come modificare il percorso dei dati utente, il percorso del file di log o i percorsi di log e del database di sistema, vedere Configurare SQL Server in Linux con lo strumento mssql-conf.

Directory tipiche di SQL Server

Scopo Percorso predefinito Dettagli
Database di sistema e utente /var/opt/mssql/data Include master, model, tempdbe tutti i nuovi database, a meno che mssql-conf non li reindirizzi. Per altre informazioni, vedere Modificare il percorso predefinito per i database di sistema.
Log delle transazioni (se separati) /var/opt/mssql/data, o il percorso impostato tramite mssql-conf set filelocation.defaultlogdir. Mantenere la stessa proprietà se si spostano i log delle transazioni. Per altre informazioni, vedere Modificare il percorso predefinito della directory dei dati o dei log.
Copie di sicurezza /var/opt/mssql/data Creare e impostare con chown prima del primo backup o quando si esegue il mapping di un volume o di una directory. Per altre informazioni, vedere Modificare il percorso predefinito della directory di backup.
Log degli errori e log degli eventi estesi (XE) /var/opt/mssql/log Ospita anche la sessione XE di integrità del sistema predefinita. Per altre informazioni, vedere Modificare il percorso predefinito della directory del file del log degli errori.
Dump della memoria /var/opt/mssql/log Usato per i core dump e DBCC CHECK* dump di base. Per altre informazioni, vedere Modificare il percorso predefinito della directory dump.
Segreti di sicurezza /var/opt/mssql/secrets Archivia i certificati TLS, le chiavi master della colonna e così via.

Ruoli SQL Server minimi per ogni agente

Agente Viene eseguito come (Linux) Si connette a Ruoli/permessi del database necessari
Agente di Snapshot mssql (tramite processo di SQL Agent) Distributor db_owner nel database di distribuzione; lettura/scrittura nella cartella snapshot
Agente lettore di log mssql Publisher e Distributore db_owner nel database di pubblicazione e nel database di distribuzione. Potrebbe essere necessario sysadmin quando si usa l'inizializzazione dal backup
Agente di Distribuzione (push) mssql Distributore al Sottoscrittore db_owner nella distribuzione; db_owner nel database di sottoscrizione. Leggere la cartella dei snapshot. Membro PAL.
Agente di distribuzione (pull) mssql (sul Sottoscrittore) Sottoscrittore al server di distribuzione
Distributore al Sottoscrittore
Uguale a agente di distribuzione (push), ma le autorizzazioni di condivisione snapshot si applicano all'host del Sottoscrittore
Agente di Merge mssql Publisher, Distributore, Sottoscrittore db_owner nella distribuzione. Membro PAL. Leggere la cartella dei snapshot. Lettura/scrittura nei database di pubblicazione e sottoscrizioni.
Agente lettore di coda mssql Distributor db_owner nella distribuzione. Si connette a Publisher con db_owner nel database di pubblicazione.

Procedure consigliate

L'utente e il gruppo mssql usati da SQL Server è un account non di accesso per impostazione predefinita e deve essere mantenuto in questo modo. A scopo di sicurezza, usare autenticazione di Windows per SQL Server in Linux laddove possibile. Per altre informazioni su come configurare autenticazione di Windows per SQL Server in Linux, vedere Tutorial: Usare adutil per configurare l'autenticazione Active Directory con SQL Server in Linux.

Limitare ulteriormente le autorizzazioni per i file (usando il comando chmod 700) ogni volta che la directory non richiede l'accesso al gruppo.

Quando si associano directory host o condivisioni NFS in contenitori o macchine virtuali, crearle prima e poi mappare UID 10001 (impostazione predefinita per mssql).

Evitare di concedere sysadmin agli account di accesso dell'applicazione. Usare invece ruoli granulari e i EXECUTE AS wrappers. Disabilitare o rinominare l'account sa dopo aver creato un altro account sysadmin . Per altre informazioni, vedere Disabilitare l'account SA come procedura consigliata.