Synology : Manipuler la base de données de la VideoStation

VideoStation

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.

Login SSH au Syno
Login SSH au Syno

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 ».

Passage en root
Passage en root

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
SesameSQL, ouvre toi !
SesameSQL, ouvre toi !

Et vous y voilà !

Le champ des possibles de la Video_Station
Le champ des possibles de la Video_Station

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/

 

About Author:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *