Partager via


SQL Server sur Linux - Guide sur la sécurité et les autorisations

Cet article décrit les comptes de service requis et les autorisations de système de fichiers pour SQL Server sur Linux. Pour plus d’informations sur SQL Server sur les autorisations Windows, consultez Configurer des comptes de service Windows et des autorisations.

Principaux Windows intégrés

Même si SQL Server sur Linux s’exécute sous le compte de mssql système d’exploitation, les principaux Windows suivants existent au niveau de la couche SQL Server pour la compatibilité. Ne les supprimez pas ou refusez-les, sauf si vous comprenez pleinement les risques.

Élement principal Rôle SQL Server par défaut Détails
BUILTIN\Administrators administrateur système Mappe aux administrateurs de niveau racine de l’hôte. Certains objets système s’exécutent dans le contexte de ce compte.
NT AUTHORITY\SYSTEM public Identificateur de service (SID) réservé au compte Windows SYSTEM . Conçu pour que les scripts multiplateformes qui le prévoient soient réussis.
NT AUTHORITY\NETWORK SERVICE sysadmin (aucun rôle fixe) Historiquement, le compte de démarrage par défaut pour plusieurs services SQL Server sur Windows. Présente uniquement pour la compatibilité rétroactive. Non utilisé par le moteur de base de données SQL Server sur Linux lui-même.

Propriété du fichier et du répertoire

Tous les fichiers sous le dossier /var/opt/mssql doivent être détenus par l'utilisateur mssql et le groupe mssql (mssql:mssql), avec un accès en lecture et en écriture pour les deux. Si vous modifiez l’umask par défaut (0022) ou utilisez d’autres points de montage, vous devez réappliquer ces autorisations manuellement.

Les autorisations par défaut pour le mssql dossier sont les suivantes :

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/

Les autorisations par défaut pour le contenu du mssql dossier sont les suivantes :

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/

Pour plus d’informations sur la modification de l’emplacement des données utilisateur, de l’emplacement du fichier journal ou de la base de données système et des emplacements de journal, consultez Configurer SQL Server sur Linux avec l’outil mssql-conf.

Répertoires SQL Server classiques

Objectif Chemin d’accès par défaut Détails
Bases de données système et utilisateur /var/opt/mssql/data Inclut master, model, tempdb, et toutes les nouvelles bases de données, sauf si mssql-conf les redirige. Pour plus d’informations, consultez Modifier l’emplacement par défaut des bases de données système.
Journaux des transactions (s’ils sont séparés) /var/opt/mssql/dataou le chemin défini via mssql-conf set filelocation.defaultlogdir. Conservez la même propriété si vous déplacez les journaux des transactions. Pour plus d’informations, consultez Modifier l’emplacement du répertoire des données ou des journaux par défaut.
Sauvegardes /var/opt/mssql/data Créez et définissez-les avant chown la première sauvegarde ou lors du mappage d’un volume ou d’un répertoire. Pour plus d’informations, consultez Modifier l’emplacement du répertoire de sauvegarde par défaut.
Journaux d’erreurs et journaux d’événements étendus (XE) /var/opt/mssql/log Héberge également la session XE d’intégrité système par défaut. Pour plus d’informations, consultez Modifier l’emplacement du répertoire du fichier journal des erreurs par défaut.
Vidages de mémoire /var/opt/mssql/log Utilisé pour les vidages mémoire et les DBCC CHECK* vidages principaux. Pour plus d’informations, consultez Modifier l’emplacement du répertoire de vidage par défaut.
Secrets de sécurité /var/opt/mssql/secrets Stocke les certificats TLS, les clés principales de colonne, etc.

Rôles SQL Server minimum pour chaque agent

Agent S’exécute sous Linux Se connecte au Rôles/droits de base de données requis
Agent d'instantané mssql (via la tâche de l'Agent SQL) Distributor db_owner dans la base de données de distribution ; lecture/écriture dans le dossier d’instantanés
l'Agent de lecture du journal ; mssql Serveur de publication et serveur de distribution db_owner dans la base de données de publication et de distribution. Peut avoir besoin de sysadmin lors de l’initialisation à partir de la sauvegarde
Agent de distribution (push) mssql Distributeur vers abonnés db_owner dans la distribution ; db_owner dans la base de données d’abonnement. Lire le dossier d’instantané. Membre PAL.
Agent de distribution (pull) mssql (sur l’Abonné) Abonné au serveur de distribution
Distributeur vers abonnés
Identique à l’Agent de distribution (push), mais les autorisations de partage d’instantané s’appliquent à l’hôte de l’Abonné
Agent de fusion mssql Serveur de publication, serveur de distribution, abonné db_owner dans la distribution. Membre PAL. Lire le dossier d’instantané. Dans les bases de données de publication et d’abonnement, en lecture/écriture.
Agent de lecture de la file d'attente mssql Distributor db_owner dans la distribution. Se connecte à Publisher avec db_owner dans la base de données de publication.

Meilleures pratiques

L’utilisateur et le mssql groupe utilisés par SQL Server sont un compte de non-connexion par défaut et doivent être conservés de cette façon. À des fins de sécurité, utilisez l’authentification Windows pour SQL Server sur Linux, le cas échéant. Pour plus d’informations sur la configuration de l’authentification Windows pour SQL Server sur Linux, consultez tutoriel : Utiliser adutil pour configurer l’authentification Active Directory avec SQL Server sur Linux.

Limitez davantage les autorisations de fichier (à l’aide de la commande chmod 700) chaque fois que le répertoire n’a pas besoin d’un accès de groupe.

Lors de la liaison de répertoires hôtes ou de partages NFS dans des conteneurs ou des machines virtuelles, créez-les d’abord, puis mappez-les à l’UID 10001 (valeur par défaut de mssql).

Évitez d’accorder l’administrateur système aux connexions d’application. Utilisez plutôt des rôles granulaires et des EXECUTE AS wrappers. Désactivez ou renommez le sa compte une fois que vous avez créé un autre compte sysadmin . Pour plus d’informations, consultez Désactiver le compte SA comme meilleure pratique.