Gérer les administrateurs WordPress directement depuis la base de données

Il m’arrive souvent de devoir intervenir sur un site WordPress mais de ne pas disposer des identifiants d’administration du CMS. Dans ce cas, il ne me reste bien souvent qu’à créer manuellement un compte administrateur en passant directement par la base de données.

Créer un utilisateur WordPress manuellement

Pour créer un utilisateur directement depuis la base, la requête SQL suivante peut être utilisée :

INSERT INTO `databasename`.`wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('username', MD5('userpass'), 'username', 'usermail@yourdomain.com', 'http://www.userurlcom/', '2017-02-01 00:00:00', '', '0', 'User Full Name');
Ajout d'un utilisateur WordPress via SQL

 

Dans cette requête, les champs suivants sont utilisés :

  • user_login : le nom d’utilisateur utilisé pour se connecter à WordPress ;
  • user_pass : le mot de passe de l’utilisateur, qui sera automatiquement hashé en MD5 ;
  • user_nicename : identique au champ user_login, mais dans une version saine, sans caractères spéciaux, afin d’être utilisé dans les URL ;
  • user_email : l’adresse e-mail de l’utilisateur ;
  • user_url : l’URL du site de l’utilisateur ;
  • user_registered : la date de création du compte, au format YYYY-MM-YY ;
  • user_status : le statut de l’utilisateur, ici 0 pour un compte actif ;
  • display_name : le nom complet de l’utilisateur, pour l’affichage sur le site.

Attribuer les droits administrateur WordPress manuellement

Pour attribuer les droits d’administration à l’utilisateur nouvellement créé, les requêtes SQL suivantes peuvent être utilisées :

INSERT INTO `databasename`.`wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES ('userid', 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO `databasename`.`wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES ('userid', 'wp_user_level', '10');
Ajout des droits administrateurs à un utilisateur WordPress via SQL

 

Dans ces requêtes, les champs suivants sont requis :

  • user_id : il s’agit de l’ID unique de l’utilisateur qui vient d’être créé ;
  • meta_key : dans la première requête, « wp_capabilities » pour définir les privilèges de l’utilisateur et dans la deuxième requête « wp_user_level » pour définir le niveau de l’utilisateur ;
  • meta_value : les valeurs correspondant aux privilèges et au niveau de l’utilisateur, respectivement « a:1:{s:13: »administrator »;s:1: »1″;} » et « 10 »

L’ID uniquement de l’utilisateur qui vient d’être créé peut être récupéré à partir de son nom d’utilisateur (user_login) via la requête suivante :

SELECT ID FROM `databasename`.`wp_user` WHERE user_login = 'userlogin'
Récupération de l'ID d'un utilisateur WordPress via SQL

Modifier lanuellement le mot de passe d’un utilisateur WordPress

Dans certains cas, il est simplement nécessaire de réinitialiser le mot de passe d’un compte.

Pour cela, la requête suivante peut-être utilisée :

UPDATE `databasename`.`wp_users` SET `user_pass`= MD5('newpassword') WHERE `user_login`= 'userlogin'
Réinitialisation du mot de passe d'un compte WordPress via SQL

Laisser un commentaire

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