Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
Restreindre le trafic entrant avec des pare-feu et des groupes de sécurité réseau : limitez l’accès réseau à SQL Server en configurant le pare-feu Windows pour l’accès au moteur de base de données. Pour SQL Server dans des machines virtuelles Azure, utilisez le Pare-feu Azure et les groupes de sécurité réseau (NSG) pour appliquer ces restrictions.
Chiffrer les connexions à SQL Server : configurez le moteur de base de données SQL Server pour chiffrer les connexions à l’aide d’un certificat. Cela garantit que les données en transit sont protégées contre l’écoute et la falsification des données. Pour plus d’informations, consultez Chiffrer les connexions au moteur de base de données SQL Server.
Gestion sécurisée à distance : utilisez des protocoles chiffrés (tels que TLS 1.3) pour toutes les connexions distantes. Pour plus d’informations, consultez Configurer TLS 1.3.
Connectez-vous à SQL Server avec un chiffrement strict : SQL Server 2022 a introduit l’option
strictde chiffrement, ce qui nécessite que toutes les connexions utilisent le chiffrement. Cela permet de s’assurer que toutes les données en transit sont protégées. Pour plus d’informations, consultez Se connecter à SQL Server avec un chiffrement strict.
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 droitssysadminà tous les DBA. Utilisez l’autorisation CONTROL SERVER si possible, car elle respecte lesDENYautorisations 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,REFERENCESouUPDATEen 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_CONTEXTpour 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.
Automatisez les sauvegardes régulières : planifiez des sauvegardes automatisées pour les bases de données, les configurations système et les journaux des transactions. Utilisez sauvegarde Azure ou outils natifs SQL Server. Pour plus d’informations, consultez Sauvegarde et restauration d’une base de données SQL Server avec SSMS et Sauvegarde et restauration pour SQL Server sur des machines virtuelles Azure.
Chiffrer les données de sauvegarde : Protégez les fichiers de sauvegarde avec Transparent Data Encryption (TDE).
Tester régulièrement les procédures de récupération : restaurez régulièrement les sauvegardes pour valider votre processus de récupération et vous assurer que vous pouvez atteindre les objectifs de temps et de point de récupération. Pour plus d’informations, consultez Restaurer des fichiers à partir de la sauvegarde de machine virtuelle.
É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.