Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive gli account di servizio necessari e le autorizzazioni del file system per SQL Server in Linux. Per altre informazioni sulle autorizzazioni di SQL Server per Windows, vedere Configurare account e autorizzazioni del servizio Windows.
Principali di Windows predefiniti
Anche se SQL Server in Linux viene eseguito con l'account del mssql sistema operativo, le seguenti entità Windows esistono a livello di SQL Server per garantire la compatibilità. Non rimuoverle o negarle, a meno che non si comprendano appieno i rischi.
| Principale | Ruolo predefinito di SQL Server | 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 di Windows SYSTEM . Ancora creato in modo che gli script multipiattaforma abbiano esito positivo. |
NT AUTHORITY\NETWORK SERVICE |
sysadmin (nessun ruolo predefinito) | Storicamente l'account di avvio predefinito per diversi servizi di SQL Server in Windows. Presente solo per la compatibilità con le versioni precedenti. Non usato dal motore di database di SQL Server su Linux. |
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 minimi di SQL Server per ogni agente
| Agente | Viene eseguito come (Linux) | Si connette a | Ruoli/permessi del database necessari |
|---|---|---|---|
| Agente Snapshot |
mssql (tramite processo di SQL Agent) |
Distributor | db_owner nel database di distribuzione; lettura/scrittura nella cartella snapshot |
| Agente lettore di log | mssql |
Editore & 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 (di tipo 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 Da Distributore a Sottoscrittore |
Come l'agente di distribuzione (push), ma le autorizzazioni di condivisione snapshot si applicano all'host del Sottoscrittore |
| Agente di fusione | mssql |
Server di pubblicazione, server di distribuzione, Sottoscrittore | db_owner nella distribuzione. Membro PAL. Leggere la cartella snapshot. Lettura/scrittura nei database di pubblicazione e sottoscrizioni. |
| Agente lettore di coda | mssql |
Distributor | db_owner nella distribuzione. Si connette al server di pubblicazione con db_owner nel database di pubblicazione. |
Procedure consigliate
L'utente e il mssql gruppo usati da SQL Server sono un account non di accesso per impostazione predefinita e devono essere mantenuti in questo modo. Per motivi di sicurezza, usare l'autenticazione di Windows per SQL Server in Linux, dove possibile. Per altre informazioni su come configurare l'autenticazione di Windows per SQL Server in Linux, vedere Esercitazione: Usare adutil per configurare l'autenticazione di 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.