[RESOLU] SQL Error: SELECT command denied to user

Pour les questions concernant l'utilisation et le paramétrage d'une version pré-compilée de gestinux, téléchargée sur SourceForge.net
Donnez la version de gestinux et de votre système d'exploitation.

Utilisez uniquement le forum Développement si vous compilez vous-même.
Post Reply
gestialain
Posts: 3
Joined: 26 Nov 2019, 11:40

[RESOLU] SQL Error: SELECT command denied to user

Post by gestialain »

Bonjour et Bonne Année tout le monde.

J'ai fraîchement installé Gestinux. Je peux m'y logger:
Paramètres/base de données/protocole/mysql-5 local host port 5671mabase avec le mot de passe qui va bien.
Je peux créer manuellement les comptes du plan comptable /Paramètres/Comptabilité/plan comptable/ (101 Capital, 1061 Réserve légale, etc...)

Afin d'éviter de créer ces comptes manuellement je souhaite importer un plan de base:
/Paramètres/Import-Export de données/
Le message suivant s'affiche:

Code: Select all

SQL Error: SELECT command denied to user 'aristote'@'localhost' for table 'user'
Lors de l'installation j'avais noté ce que j'avais fait. Voici:

Code: Select all

> CREATE DATABASE mabase;
> SHOW DATABASES;
> grant usage on *.* to user@localhost identified by 'password';
> grant all privileges on mabase.* to user@localhost ;
N'étant pas programmeur et ne sachant pas trop comment résoudre ce problème j'ai cherché et trouvé cette possibilité:
En tant que root:

Code: Select all

> grant all on *.* to 'user'@'%' identified by '[PW]';
Avant de faire une manip irréparable, est-ce que je suis sur le bon chemin pour résoudre l'erreur que j'obtient?
Est-ce que ce GRANT ALL n'est pas trop généreux?

Sinon, qu'est-ce que je dois faire pour résoudre ce problème et importer mon plan?

Merci par avance pour toutes suggestions
Last edited by gestialain on 16 Jan 2020, 20:34, edited 1 time in total.
sevrien
Posts: 2
Joined: 10 Mar 2018, 12:35

Re: SQL Error: SELECT command denied to user

Post by sevrien »

Bonjour

Je crois bien que vous vous êtes compliqué la vie...

Il n'est pas nécessaire de créer la base de données ou les utilisateurs, ni de leur donner des droits (au moins au début, pour un usage simple).
C'est gestinux qui crée la base de données si vous spécifiez une base de données inexistante, à condition d'être connecté avec un utilisateur administrateur (root). Vous pouvez ensuite garder le même utilisateur pour l'utiliser, c'est de loin le plus simple.

Dans votre cas, pour l'import, vous vous êtes apparemment connecté à gestinux avec l'utilisateur aristote@localhost, qui existait ou que vous avez peut-être créé vous même avant, mais ce dernier n'a même pas le droit de lire une table essentielle.

Pour que ça marche, il faudrait lui donner les droits en faisant par exemple :

Code: Select all

grant all privileges on mabase.* to aristote@localhost ; 
grant select on mysql.* to aristote@localhost ; 
Il faut les donner à l'user aristote, pas à l'user user...

Si votre base est locale, je pense qu'il n'y a pas grand risque à faire ça.
Vous pourrez affiner par la suite, mais cela risque d'être laborieux si vous n'y êtes pas habitué...
On peut même donner des droits très fins en fonction des tables, mais peu de gens se lancent là dedans...

Bon courage, et n'hésitez pas à nous solliciter !
gestialain
Posts: 3
Joined: 26 Nov 2019, 11:40

[RESOLU] Re: SQL Error: SELECT command denied to user

Post by gestialain »

Il semble donc que j'avais mélangé les users lors ma découverte de Gestinux.
J'ai strictement appliqué ce que vous m'avez conseillé. Cela a résolu le problème:

Code: Select all

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
[...]
MariaDB [(none)]> grant all privileges on mabase.* to aristote@localhost ;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant select on mysql.* to aristote@localhost ; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Merci beaucoup pour ce coup de pouce.
Post Reply