Sécuriser votre serveur SQL Server

SQL Server est un système de gestion de base de données relationnelle (SGBDR) qui stocke et gère les données métier critiques pour les applications, l’analytique et la création de rapports. Étant donné qu’il contient souvent des informations sensibles, telles que les enregistrements client, les données financières et la propriété intellectuelle, la sécurisation de SQL Server est essentielle pour protéger votre organisation contre les violations de données, les risques d’accès non autorisé et de conformité.

Cet article fournit des conseils sur la meilleure sécurisation de votre serveur SQL Server.

Sécurité réseau

La sécurisation de l’accès réseau à SQL Server permet d’empêcher les connexions non autorisées, de réduire l’exposition aux attaques et garantit que seules les sources approuvées peuvent atteindre vos bases de données.

Gestion des identités

Les contrôles d’identité et d’authentification forts permettent de s’assurer que seuls les utilisateurs et applications autorisés peuvent accéder aux ressources SQL Server.

  • Utilisez l’authentification Windows ou l’authentification Microsoft Entra : préférez l’authentification Windows ou l’authentification Microsoft Entra par rapport à l’authentification SQL pour la gestion centralisée des identités et un contrôle de cycle de vie de compte plus facile. Pour plus d’informations, consultez Choisir un mode d’authentification.

  • Utilisez des comptes de service gérés par groupe (gMSA) pour les services : utilisez gMSA pour gérer automatiquement et en toute sécurité les informations d’identification du compte de service. Pour plus d’informations, consultez Group-Managed vue d’ensemble des comptes de service.

  • Appliquer des stratégies de mot de passe fortes : si vous utilisez l’authentification SQL, exigez des mots de passe complexes qui ne peuvent pas être facilement deviner et ne sont pas utilisés pour d’autres comptes. Mettez régulièrement à jour les mots de passe et appliquez des stratégies Active Directory. Pour plus d’informations, consultez Mots de passe forts.

  • Utilisez les utilisateurs de base de données autonome le cas échéant : envisagez les utilisateurs de base de données autonome pour les applications qui ont besoin d’une authentification au niveau de la base de données sans nécessiter de connexions au niveau du serveur. Pour plus d’informations, consultez Utilisateurs de base de données contenus.

Accès privilégié

La limitation et la surveillance de l’accès privilégié permettent d’empêcher les modifications non autorisées et de réduire l’impact des comptes compromis.

  • Accordez les autorisations minimales requises : attribuez le niveau de privilège le plus bas nécessaire pour chaque utilisateur ou service. Passez régulièrement en revue et ajustez les autorisations pour conserver les privilèges minimum. Pour plus d’informations, consultez Prise en main des autorisations du moteur de base de données.

  • Séparer les administrateurs de bases de données (DBA) et les rôles sysadmin : évitez d'accorder des droits sysadmin à tous les DBA. Utilisez l’autorisation CONTROL SERVER si possible, car elle respecte les DENY autorisations et permet un contrôle plus précis. Envisagez une séparation des tâches qui limitent l’accès à la machine virtuelle, la possibilité de se connecter au système d’exploitation, la possibilité de modifier les journaux d’activité d’erreur et d’audit et la possibilité d’installer des applications et/ou des fonctionnalités. Pour plus d’informations, consultez Autorisations (moteur de base de données).

  • Surveiller et auditer les activités privilégiées : activez l’audit pour suivre les modifications apportées par les comptes privilégiés et passez en revue régulièrement les journaux d’activité suspecte. Pour plus d’informations, consultez Audit SQL Server (moteur de base de données).

  • Implémenter la séparation des rôles : placez les utilisateurs Active Directory dans des groupes AD, mappez des groupes AD aux rôles SQL Server et accordez aux rôles SQL Server les autorisations minimales requises par les applications. Pour plus d’informations, consultez Prise en main des autorisations du moteur de base de données.

Protection de données

La protection des données au repos et en transit est essentielle pour empêcher toute divulgation ou falsification non autorisée.

  • Chiffrer les informations sensibles avec Always Encrypted : utilisez Always Encrypted et Always Encrypted avec enclaves sécurisées pour protéger les données sensibles dans SQL Server. Préférez le chiffrement aléatoire pour une sécurité plus forte. Pour plus d'informations, consultez Always Encrypted.

  • Utilisez Transparent Data Encryption (TDE) pour les fichiers de base de données : activez TDE pour chiffrer les fichiers de base de données, de sauvegarde et de tempdb, en protégeant les données si le média physique est compromis. Pour plus d'informations, consultez Transparent Data Encryption (TDE).

  • Masquer les données sensibles avec le masquage dynamique des données (DDM) : utilisez DDM pour masquer les données sensibles dans les résultats de requête lorsque le chiffrement n’est pas possible. Pour plus d’informations, consultez Dynamic Data Masking.

  • Accorder des autorisations au niveau des colonnes : limitez l’accès aux colonnes sensibles en accordant SELECT, REFERENCESou UPDATE en accordant uniquement des autorisations aux utilisateurs autorisés. Pour plus d’informations, consultez GRANT autorisations.

  • Utiliser la sécurité au niveau des lignes (RLS) pour restreindre l'accès aux données : mettez en œuvre la RLS pour que les utilisateurs ne voient que les données qui les concernent. Utiliser SESSION_CONTEXT pour les applications de niveau intermédiaire où les utilisateurs partagent des comptes SQL. Pour plus d’informations, consultez Row-Level Sécurité.

  • Combinez les fonctionnalités de sécurité pour une protection maximale : utilisez Row-Level Sécurité avec Always Encrypted ou Dynamic Data Masking pour optimiser la posture de sécurité de votre organisation. Pour plus d’informations, consultez Row-Level meilleures pratiques en matière de sécurité.

Journalisation et détection des menaces

La journalisation et la surveillance complètes permettent de détecter les menaces, d’examiner les incidents et de répondre aux exigences de conformité.

  • Activez et configurez l’audit SQL Server : auditez l’accès et les modifications apportées aux données sensibles et aux configurations au niveau du serveur et de la base de données. Envisagez d’auditer des tables et des colonnes avec des données sensibles qui ont des mesures de sécurité appliquées. Passez régulièrement en revue les journaux d’audit, en particulier pour les tables contenant des informations sensibles où des mesures de sécurité complètes ne sont pas possibles. Pour plus d’informations, consultez Audit SQL Server (moteur de base de données).

  • Utilisez le journal dans SQL Server : activez le journal pour créer un enregistrement immuable des modifications apportées aux données sensibles, en fournissant une journalisation indélébile. Pour plus d’informations, consultez Configurer une base de données de registre.

Sauvegarde et récupération

Les processus de sauvegarde et de récupération fiables protègent vos données contre les pertes en raison de défaillances, de sinistres ou d’attaques.

Évaluation de la sécurité et atténuation des menaces

L’évaluation régulière de votre environnement SQL Server permet d’identifier les vulnérabilités et d’améliorer votre posture de sécurité.

  • Limiter les fonctionnalités activées pour réduire la surface d’attaque : activez uniquement les fonctionnalités SQL Server requises pour votre environnement. Pour plus d'informations, consultez Configuration de la surface d'exposition.

  • Exécuter des évaluations des vulnérabilités : utilisez l’évaluation des vulnérabilités SQL, fournie via Microsoft Defender pour SQL, afin de détecter et de corriger les vulnérabilités potentielles de base de données dans les ressources cloud et locales. Pour plus d’informations, consultez évaluation des vulnérabilités pour SQL Server.

  • Classifier et étiqueter des données sensibles : utilisez la découverte et la classification des données SQL pour identifier et étiqueter les données sensibles pour une meilleure protection et conformité. Pour plus d’informations, consultez Découverte et classification des données SQL.

  • Passez en revue et atténuez les menaces courantes : protégez-vous contre l’injection SQL, les attaques par canal latéral, la force brute, la pulvérisation de mots de passe et les ransomware en suivant les pratiques recommandées pour la validation d’entrée, la mise à jour corrective et le contrôle d’accès. Pour plus d’informations, consultez injection SQL et attaques par ransomware.

  • Implémenter une sécurité de défense en profondeur : utilisez plusieurs fonctionnalités de sécurité ciblées sur différentes étendues de sécurité pour fournir une protection complète contre diverses menaces. Pour plus d’informations, consultez les meilleures pratiques de sécurité SQL Server.