Je souhaite faire un peu de ménage dans la VideoStation de mon NAS Synology, sans tout réindexer. J’ai par exemple un ou deux répertoires qui apparaissent dans la vidéo station alors qu’ils n’existent pas (plus) dans le répertoire « video ». Je voudrais aller mettre les doigts dans le cambouis.
Ce qu’il faut savoir avant
Tout d’abord, ces manipulations sont risquées (sinon, ce n’est pas drôle). Cela ajoute de l’insécurité à votre système.
En DSM 6 (comme dans des versions précédentes), les informations de la VideoStation sont stockées dans une base de données. Le moteur de cette base : Postgre (moins connu que Oracle, SQL Serveur ou MySQL, mais très puissant pour un gratuit!)
La démarche, la première fois
Se connecter en SSH à votre Syno
Pour commencer, comme d’habitude, vous lancez Putty / Kitty et vous rentrez l’adresse IP de votre Synology. Vous vous connectez en tant qu’admin.

Pour faire les manipulations suivantes, il est indispensable d’être identifié comme « root ». Il faut donc rentrer la commande suivante :
sudo -i
Vous remarquez que le début de la ligne change pour indiquer que vous utilisez « root » et non plus « admin ».

Activer l’écoute de votre PC (et d’autres)
Maintenant, nous allons pouvoir modifier le fichier des droits de Postgre pour autoriser l’accès depuis mon PC.
On se positionne donc dans le bon répertoire :
cd /var/services/pgsql
et on se fait une copie de sauvegarde du premier document
cp postgresql.conf postgresql.conf.20161227
on peut modifier en utilisant vi ou nano, et on va noter une première chose. La première ligne indique le fichier qu’il va falloir modifier ensuite, et la seconde indique les adresse à écouter.
hba_file = '/etc/postgresql/pg_hba.conf' ... listen_addresses = '127.0.0.1'
nous allons modifier la ligne « listen_addresses » pour lui indiquer qui écouter, et passer de lui-même (127.0.0.1) à tout le monde (*)
listen_addresses = '*'
Autoriser l’accès à votre PC
Ensuite, vous l’avez noté, nous allons modifier maintenant le fichier des autorisations qui est dans /etc/postgresql/
cd /etc/postgresql/
et on fait la traditionnelle copie de sauvegarde
cp pg_hba.conf pg_hba.conf.20161227
puis on peut modifier en utilisant vi ou nano, pour autoriser les postes en 192.168.0.x (192.168.0.1/24) à accéder à la base de données.
root@DiskStation:/etc/postgresql# cat pg_hba.conf # TYPE DATABASE USER ADDRESS METHOD local all postgres peer map=pg_root local all all peer host all all 192.168.0.1/24 trust
Enfin, on sauvegarde…
Appliquer les modifications
… et on relance le service
synoservicecfg --restart pgsql
Les démarches, à chaque fois
Se connecter à la base de données
Les logiciels qui peuvent être utilisés : https://en.wikipedia.org/wiki/Comparison_of_database_tools
Personnellement, je viens de prendre celui-ci http://www.heidisql.com/
On peut y inscrire les paramètres de votre serveur :
- Adresse IP
- Utilisateur : admin
- Mot de passe : votre mot de passe
- Port : 5432
- Base de données : video_metadata

Et vous y voilà !

Lire le contenu
Vous retrouverez toutes les informations dans la base « public », et voici quelques tables :
- actor : acteurs
- director : réalisateurs
- gnere : genres (c’est marrant cette faute !)
- movie : films
- plus_info : données non structurées avec plus d’informations
- video_file : les fichiers des films
C’est apparemment le champ mapper_id qui permet de faire le lien entre tout ce petit monde.
Et après?
Et bien, après… libre à vous. Mais est-ce vraiment utile? Je ne crois pas. Je ne sais pas. Je n’ai pas trouvé mes répertoires fantômes. Enfin, pas encore ?
Ressources
- http://www.nas-forum.com/forum/topic/40300-acc/
3 commentaires sur “Synology : Manipuler la base de données de la VideoStation”
Bonjour,
j’ai réaliser les modifications comme expliqué. Avant les modifs je pouvais me connecter au server postgres avec le paquet adminer et maintenant j’ai un message d’erreur :
SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host « 127.0.0.1 » and accepting TCP/IP connections on port 5432?
peut-on prendre un moment pour en discuter?
Merci d’avance,
Romain
Bonjour Romain.
En effet, c’est étonnant car il me semble que les droits « historiques » sont conservés. Avez-vous essayé de restaurer les deux fichiers postgresql.conf et pg_hba.conf ?
Merci !
J’avoue pencher pour pg_hba.conf qui donne les droits, puisque postgresql.conf indique l’écoute sur toutes les sources