Les différents types de bases de données
1. Bases de données relationnelles (SQL)
Les bases de données relationnelles sont organisées en tables avec des relations entre elles. Elles utilisent le langage SQL pour les requêtes.
Exemples :
- MySQL
- PostgreSQL
- Microsoft SQL Server
- Oracle Database
- MariaDB
2. Bases de données NoSQL (Non relationnelles)
Conçues pour gérer des données non structurées, elles sont très flexibles et souvent distribuées.
Types et exemples :
- Bases orientées documents : MongoDB, CouchDB
- Bases clé-valeur : Redis, DynamoDB
- Bases orientées colonnes : Apache Cassandra, HBase
- Bases orientées graphes : Neo4j, Amazon Neptune
3. Bases de données temporelles
Utilisées pour la gestion de séries temporelles.
Exemples :
- InfluxDB
- TimescaleDB
4. Bases de données en mémoire
Stockent les données directement en RAM pour des performances élevées.
Exemples :
- Redis
- Memcached
5. Bases de données multimodèles
Combinent plusieurs types de stockage (document, clé-valeur, graphe, etc.).
Exemples :
- ArangoDB
- OrientDB
6. Bases de données embarquées
Intégrées dans des applications pour fonctionner sans serveur externe.
Exemples :
- SQLite
- Berkeley DB
7. Bases de données cloud et distribuées
Conçues pour fonctionner sur des infrastructures cloud.
Exemples :
- Google BigQuery
- Amazon Aurora
- CockroachDB
Les moyens pour les sécuriser
1. Sécurisation des accès
Authentification et gestion des utilisateurs
- Utiliser une authentification forte (mots de passe complexes, authentification à deux facteurs)
- Appliquer le principe du moindre privilège
- Désactiver les comptes inutilisés
Restriction des accès
- Limiter les IP autorisées
- Utiliser un VPN
- Restreindre l’accès root/admin
Sécurisation des connexions
- Forcer l'utilisation de TLS/SSL
- Empêcher l’accès root en externe
2. Sécurisation des données
Chiffrement des données
- Chiffrer les données sensibles (ex. : AES-256)
- Utiliser le chiffrement en transit et au repos
Anonymisation et masquage
- Masquer les données sensibles dans les environnements de test
- Appliquer des techniques d’anonymisation
3. Protection contre les attaques
Prévention des injections SQL
- Utiliser des requêtes préparées
- Limiter les permissions d’exécution SQL
Sécurité des API et applications connectées
- Limiter le nombre de requêtes (protection contre DDoS)
- Filtrer et valider toutes les entrées utilisateur
4. Sécurisation physique et réseau
Isolation et restriction des connexions
- Isoler les bases sensibles sur un réseau privé
- Restreindre l’accès aux machines hébergeant la base
Firewalls et segmentation réseau
- Placer la base derrière un pare-feu
- Segmenter les réseaux pour limiter les intrusions
Surveillance et audit
- Activer la journalisation des accès (logs)
- Configurer un SIEM (Security Information & Event Management)
5. Sauvegardes et reprise après sinistre
Sauvegardes régulières
- Automatiser les sauvegardes et les stocker en lieu sûr
- Appliquer la stratégie 3-2-1 : 3 copies, 2 supports différents, 1 hors site
Tests de restauration
- Tester régulièrement la restauration des données
- Mettre en place un plan de reprise après sinistre
6. Mises à jour et correctifs
- Appliquer les mises à jour de sécurité
- Désactiver les modules inutilisés