Ceci est une ancienne révision du document !
Table des matières
Bases de données
Types de bases de données
- Orientée documents – Elasticsearch, MongoDB.
- Série temporelle – Prometheus, TimescaleDB.
MySQL
Commentaires
Les commentaires sont importants pour la pérennité du code. Encore faut-il qu'ils soient mis à jour en même temps que le code lié. Il en est de même avec ce que l'on met dans notre base de données. Cette page décrit les différents types de commentaires qu'il est possible d'utiliser, ainsi que l'ensemble des éléments qu'il est possible de commenter.
Procédures et fonctions
La base de données propose un nombre fini d'instructions. Cependant, il est possible de les combiner pour étendre les possibilités de manipulation de données. Cette page décrit les bases de ce qu'il y a à savoir quand on écrit et utilise procédures et fonctions.
Requêtes
Pour manipuler la base de données, il existe deux catégories de requêtes, celles pour la manipulation des données et celles pour l'administration de la base de données. Techniquement, ces dernières sont des requêtes qui se font sur les base de données internes.
Hiérarchie de données
Cette page décrit certaines solutions de stockage d'une hiérarchie ainsi que leur utilisation.
Outils
Cette page recense certains outils pour manipuler la base de données.
Ajouter les infos suivantes dans les pages appropriées
Sqlite
Permissions
Pour pouvoir modifier une base de données Sqlite, il faut non seulement que le fichier qui la contienne ait les bonnes permissions mais aussi que le répertoire parent ait les mêmes permissions.
# La base de données n'est pas accessible en écriture dr-xr-xr-x 3 100 82 4096 Feb 22 06:41 . -r-xr-xr-x 1 100 82 6696960 Feb 22 06:41 db.sqlite # La base de données n'est pas accessible en écriture dr-xr-xr-x 3 100 82 4096 Feb 22 06:41 . -rwxrwxrwx 1 100 82 6696960 Feb 22 06:41 db.sqlite # La base de données est accessible en écriture drwxrwxrwx 3 100 82 4096 Feb 22 06:41 . -rwxrwxrwx 1 100 82 6696960 Feb 22 06:41 db.sqlite
Requête sur plusieurs bases de données
Il est possible de faire des requêtes en ciblant des tables situées dans des bases de données différentes. Pour cela, il faut commencer par attacher la base de données ciblée à celle utilisée 1) avec la commande suivante :
ATTACH 'db.sqlite' AS other;
Ensuite, il suffit de référencer les tables de cette base de données de la manière suivante :
SELECT * FROM local_table AS a JOIN other.table AS b ON a.id = b.id
DBeaver
Récupérer les mots de passe sauvegardés
- Localiser le fichier contenant les mots de passe avec la commande suivante :
find . -iname \*credentials-config.json
- Déchiffrer le fichier contenant les mots de passe avec la commande suivante :
openssl aes-128-cbc -d -K babb4a9f774ab853c96c2d653dfe544a -iv 00000000000000000000000000000000 -in "${HOME}/.local/share/DBeaverData/workspace6/General/.dbeaver/credentials-config.json" | dd bs=1 skip=16 2>/dev/null | jq
- Afficher les informations des bases de données en ouvrant le fichier de configuration des connexions avec la commande suivante :
cat .local/share/DBeaverData/workspace6/General/.dbeaver/data-sources.json | jq
- Comparer les résultats des 2 commandes précédentes pour lier une connexion à son utilisateur et son mot de passe.