PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 23/11/2017 19:32:41

LienRag
Membre

Grant to @localhost (résolu)

Bonjour.

J'essaye d'installer Icinga2 et IcingaWeb2 sur Debian, et la documentation explique que c'est utilisable soit avec MariaDB/Mysql soit avec PostgreSQL.
Bien que ne connaissant pas beaucoup ce dernier (et ayant eu une formation de deux jours sur MariaDB) j'ai choisi PostgreSQL puisque sa réputation est excellente.

Par contre dans la doc IcingaWeb2, il y a une commande en fin d'installation qui n'est donnée que pour MariaDB:
GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'CHANGEME';
J'ai regardé la syntaxe PostgreSQL et apparemment c'est la même pour GRANT.
Mais quand, après avoir créé la base icingaweb2 sans problème en utilisant le code donné pour MariaDB, je tape la ligne ci-dessus, j'obtiens une erreur de syntaxe "sur ou près de TO", et si je vire le .* pour tester, une erreur de syntaxe "sur ou près de @".

J'ai fait une bête faute de SQL que je n'arrive pas à voir malgré 15 relectures ou il y a quelque chose que PostgreSQL ne gère pas comme MariaDB?
Il y a une solution?

Dernière modification par LienRag (24/11/2017 17:39:21)

Hors ligne

#2 23/11/2017 20:03:51

Marc Cousin
Membre

Re : Grant to @localhost (résolu)

En fait, la syntaxe de grant de mysql/mariadb ne ressemble à celle d'aucun autre sgbd…

Je vous conseille https://www.postgresql.fr/guidedemarragerapide pour vous mettre le pied à l'étrier (histoire de ne pas attribuer de droits sans en mesurer les conséquences).


Marc.

Hors ligne

#3 24/11/2017 15:13:22

dverite
Membre

Re : Grant to @localhost (résolu)

GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'CHANGEME';

Cette ligne suppose qu'il y a une base existante appelée icingaweb2.
Admettons que cette base appartienne à un utilisateur icinga et que les objets contenus appartiennent aussi à un utilisateur icinga.
Cet utilisateur aura été créé par CREATE USER.

Si le web est configuré pour se connecter avec l'utilisateur icinga à cette base via localhost et avec le mot de passe choisi à la création de l'utilisateur, le GRANT ci-dessus n'a pas besoin d'équivalent, parce que:

- l'utilisateur existe déjà
- il a déjà tous les droits sur tous les objets de sa propre base.
- un pg_hba.conf normal donne déjà le droit de se connecter avec un mot de passe via localhost.

Hors ligne

#4 24/11/2017 16:55:32

LienRag
Membre

Re : Grant to @localhost (résolu)

OK merci.
Donc il n'y a rien à faire ou bien il faut faire (après un dropdb icingaweb2):
createuser icingaweb2
createdb -O icingaweb2 icingaweb2 #crée la base icingaweb2 et l'affecte à l'utilisateur icingaweb2

(qui m'a été conseillé par un gentil mastonaute framasoftien)?
On note bien que la doc demande de créer la base icingaweb2 mais ne parle pas de créer l'utilisateur icingaweb2 (à part si le GRANT a cet effet implicite); cependant la commande createuser icingaweb2 donne bien comme résultat "Saisir le mot de passe pour le nouveau rôle".

edit: les deux commandes mastono-framasoftiennes ont réglées le problème. Merci encore.

Dernière modification par LienRag (24/11/2017 17:38:42)

Hors ligne

#5 24/11/2017 18:42:25

dverite
Membre

Re : Grant to @localhost (résolu)

Le GRANT mysql a cet effet implicite, oui.
C'est une spécificité de mysql de faire un combo avec [attribution de droits d'accès + création simultanée d'utilisateur] liés à l'endroit d'où il se connecte (ici localhost). Dans les autres SGBDs ces deux notions sont généralement bien séparées.

Hors ligne

Pied de page des forums