Page 1 sur 1

PHPMyAdmin, mauvais privilèges ?

Posté : 05 juin 2006, 04:24
par Daviwys
Bonjour à tous,

PhpMyAdmin n'en fait qu'à sa tête...
En ajoutant un nouvel utilisateur, il donne des privilèges sur la base "information_schema" à ce nouvel utilisateur.

J'ai beau essayer de virer ces droits, mais rien y fait ?

Merci d'avance pour votre aide.

Infos sur les versions :
- phpMyAdmin - 2.8.0.3
- MySQL - 5.0.21

Posté : 05 juin 2006, 09:39
par Cyrano
As-tu essayé d'ajouter tes utilisateurs via la ligne de commande MySQL plutôt qu'avec phpMyAdmin ?

Je viens de procéder à quelques essais, j'ai créé un schéma et un utilisateur n'ayant de droits que sur ce schéma. En me loggant sous ce pseudo, j'accède au schéma créée plus information_schema, mais ce dernier est en lecture seule, je ne peux y apporter aucune modifications.
Voici ce que j'ai fait, d'abord en root:
-1- création du schéma :

Code : Tout sélectionner

CREATE SCHEMA `betatest`;
-2- Création de l'utilisateur :

Code : Tout sélectionner

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON betatest.* to betatest@localhost identified by 'abcd';
Ensuite, j'ai fermé ça et j'ai ouvert une nouvelle ligne de commande en me loggant sous le pseudo créé "betatest" :

Code : Tout sélectionner

C:\>mysql -u betatest -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 741 to server version: 5.0.21-community-nt-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | betatest | +--------------------+ 2 rows in set (0.00 sec)
Effectivement, je vois bien le schéma créé pour cet utilisateur et information_schema, mais regarde maintenant ceci:

Code : Tout sélectionner

mysql> CREATE SCHEMA `testbeta`; ERROR 1044 (42000): Access denied for user 'betatest'@'localhost' to database 'testbeta' mysql> SELECT * FROM SCHEMA_PRIVILEGES; +------------------------+---------------+--------------+----------------+--------------+ | GRANTEE | TABLE_CATALOG | TABLE_SCHEMA | PRIVILEGE_TYPE | IS_GRANTABLE | +------------------------+---------------+--------------+----------------+--------------+ | 'betatest'@'localhost' | NULL | betatest | SELECT | NO | | 'betatest'@'localhost' | NULL | betatest | INSERT | NO | | 'betatest'@'localhost' | NULL | betatest | UPDATE | NO | | 'betatest'@'localhost' | NULL | betatest | DELETE | NO | | 'betatest'@'localhost' | NULL | betatest | CREATE | NO | | 'betatest'@'localhost' | NULL | betatest | DROP | NO | +------------------------+---------------+--------------+----------------+--------------+ 6 rows in set (0.00 sec) mysql> UPDATE SCHEMA_PRIVILEGES -> SET IS_GRANTABLE = 'YES' -> WHERE PRIVILEGE_TYPE = 'DROP'; ERROR 1044 (42000): Access denied for user 'betatest'@'localhost' to database 'information_schema'
Je vois information_schema, mais je ne peux rien y modifier.
En revanche, en utilisant la base betatest, l'accès est normal :

Code : Tout sélectionner

mysql> USE `betatest`; Database changed mysql> CREATE TABLE `test`( -> test_id INT(11) NOT NULL AUTO_INCREMENT, -> test_txt CHAR(64) NOT NULL, -> PRIMARY KEY(test_id) -> )ENGINE=MyISAM; Query OK, 0 rows affected (0.05 sec)

Posté : 05 juin 2006, 21:01
par Invité
Je te remercie pour ces explications qui me rassurent :wink:

Posté : 05 juin 2006, 22:35
par Cyrano
Le schema information_schema est une base système de MySQL depuis la version 5 si je fais pas erreur. En te logguant comme utilisateur ayant un accès restreint, tu noteras en outre que tu ne pourras accéder dans cette base qu'aux informations sur le schéma pour lequel cet utilisateur a des privilèges, mais rien sur les autres. Le code montré plus haut est un copier/coller de ma fenêtre de ligne de commande et je te garantis que j'ai beaucoup plus de schémas créés sur mon serveur local.

Je crois qu'on peut mettre ce sujet [Résolu]

Posté : 06 juin 2006, 11:20
par Daviwys
Oui, c'est bien çà.
Je viens de mettre le [Résolu]
Encore merci :wink: