1 votes

Donner à un utilisateur non-root l'accès à la connexion à phpMyAdmin

J'essaie de donner à un utilisateur mysql non root l'accès à la connexion à phpMyAdmin et de ne voir que la base de données à laquelle il a accès.

J'ai déjà consulté les articles suivants et suivi leurs conseils : Configuration de phpmyadmin pour plusieurs utilisateurs

J'ai accordé à l'utilisateur mysql un accès avec mot de passe à sa base de données et à la sélection d'éléments dans la base de données mysql (comme indiqué dans l'un des articles). J'ai configuré phpmyadmin pour qu'il utilise le type d'authentification cookie, j'ai un utilisateur de contrôle pma, j'ai autorisé l'utilisateur à accéder non seulement à '%' mais aussi à localhost et à des IP, etc.

Lorsque l'utilisateur se connecte, il obtient le message #1045 Cannot log in to the MySQL server.

Mon utilisateur root peut se connecter sans problème à phpmyadmin. L'utilisateur qui doit accéder à phpmyadmin peut également se connecter à partir de la ligne de commande.

Le répertoire phpmyadmin a chmod -R 777, sauf pour le fichier de configuration, qui n'est pas accessible en écriture.

Les lignes applicables du fichier journal mysql sont :

130507 14:40:00 [Warning] 'user' entry 'someusername@mydomain' ignored in --skip-name-resolve mode.ve mode.
130507 14:40:00 [Warning] 'db' entry 'somedbname someusername@mydomain' ignored in --skip-name-resolve mode.
130507 14:40:00 [Warning] 'tables_priv' entry 'db someusername@mydomain' ignored in --skip-name-resolve mode.
130507 14:40:00 [Warning] 'tables_priv' entry 'host someusername@mydomain' ignored in --skip-name-resolve mode.
130507 14:40:00 [Warning] 'tables_priv' entry 'tables_priv someusername@mydomain' ignored in --skip-name-resolve mode.
130507 14:40:00 [Warning] 'tables_priv' entry 'user someusername@mydomain' ignored in --skip-name-resolve mode.

À titre d'information, le nom d'utilisateur actuel, someusername@mydomain, s'est vu accorder des privilèges avec un mot de passe.

Ma configuration phpmyadmin ressemble à ceci :

$cfg['blowfish_secret'] = '*******************';
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '**********';
$cfg['Servers'][$i]['hide_db'] = 'information_schema';
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['MaxRows'] = 500;
$cfg['AllowUserDropDatabase'] = true;

Avez-vous des idées sur la façon de résoudre ce problème ?

Gracias.

1voto

Michael Hampton Points 232226

Vous avez démarré MySQL avec l'option skip-name-resolve soit sur la ligne de commande, soit dans /etc/my.cnf mais vous avez des utilisateurs de MySQL dont les noms comprennent un nom d'hôte, plutôt qu'une adresse IP. Comme MySQL ne résout pas les adresses IP en noms d'hôtes, il ne peut pas authentifier ces utilisateurs.

Pour résoudre le problème, faites l'une des deux choses suivantes ou les deux :

  1. Retirer le skip-name-resolve option.
  2. Créez des utilisateurs MySQL avec des adresses IP plutôt que des noms d'hôtes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X