WordPress – Vous n’avez pas les droits suffisants pour accéder à cette page

Problématique

Pour sécuriser WordPress, il vaut mieux ne pas conserver le prefixe de tables par défaut « wp_ ». Tous les hackers, pirates et malfaisants de la planète informatique vont taper là-dedans en priorité. Il est donc prudent d’en prendre une autre.

Par exemple, vous lancez un site de vente de bandes molletières parce que vous pensez que les Allemands vont encore nous prendre par surprise à Sedan, qu’il faudra équiper notre vaillante armée et que, comme la dernière guerre que nous ayons gagné c’est 14-18, prenez comme préfixe bm_ (bm comme « bande molletière », faut suivre un peu).

Si vous aviez voulu créer le site de la Fédération Européenne des collectionneurs de sous-bocks, le préfixe « sb_ » vous serait venu à l’idée immédiatement.

Vous me direz, et vous aurez raison, qu’avec un robot pas trop primitif, le pirate sus-mentionné aura tôt fait de faire une petite boucle pour dénicher tous vos préfixes.

Sachez que rien ne vous empêche de prendre une préfixe de plus de trois caractères, vous pouvez tout à fait opter pour « essaiededenicherleprefixegrosmalin_ », si le pirate est russe ou chinois, peu de chances qu’il ne trouve. Vous pouvez prendre aussi « knokkelezout_ », s’il n’est pas belge (flamand), il n’imaginera même pas qu’un mot pareil puisse exister. Or il y a beaucoup moins de pirates belges néeerlandophones que russes ou chinois, ce n’est pas une question de niveau. Pourtant c’est à Knokke que j’ai mangé la meilleure moules-frites de ma vie.

Le problème est que vous avez peut-être déjà créé votre base avec le préfixe standard wp_. Il n’y a pas de honte à ça : j’ai fait l’erreur. Comment procéder ?

Marche à suivre

Nous allons procéder lentement mais sûrement car au moindre écart, votre blog se mettra en grève et qu’il ne faut SURTOUT pas perdre les données. Supposons que votre nouveau préfixe soit new_

  1.  utiliser phpAdmin pour copier les 11 tables wp_ de la manière suivante pour chaque table :
    • sélectionner la table
    • cliquer sur Opérations
    • aller dans le 2e pavé de droite Copier la table vers (base.table)
    • remplacer dans le nom de table affiché le préfixe ancien wp_ par new_
    • cliquer l’option Structure et données
    • puis sur le bouton Exécuter
    • et cela pour les 11 tables …
    • vous détruirez les anciennes plus tard
  2. éditez le fichier wp_config.php situé dans le répertoire racine de votre installation WordPress (racine du site si vous avez installé WordPress en racine, dans le répertoire choisi sinon)
    • assurez-vous qu’il soit bien éditable sinon changer les propriétés de votre fichier
    • dans la ligne $table_prefix  = ‘wp_’; remplacez wp_ par new_

Voilà c’est fait. Facile non ? Erreur …

Ce n’est pas fait et ce n’est pas facile car vous lancez votre blog, vous voulez vous connecter en administrateur légitime que vous êtes. Et que vous répond WordPress ?

Vous n’avez pas les droits suffisants pour accéder à cette page

Vous vous dites

Mais si je les ai !

Et vous les avez mais WordPress malgré ses qualités présente encore quelques défaillances dont celle-ci.

Solution

Il faut maintenant aller corriger à la main certaines informations apparemment résiduelles mais, de fait, bloquantes du user administrateur

La marche à suivre :

  1. allez d’abord dans la table new_user et identifiez l’ID de l’administrateur
  2. sélectionnez la table new_usermeta
  3. cliquez l’onglet Recherche
  4. saisissez dans la case user_id, l’ID retrouvé ci-dessus
  5. saisissez dans la case meta_key, LIKE et wp_% (j’ai bien dit wp_, l’ancien préfixe)
  6. vous trouverez entre autres les meta_key : wp_capabilities, wp_user-settings, wp_user-settings-time
  7. remplacez –les par  : new_capabilities, new_user-settings, new_user-settings-time
  8. sélectionnez la table  new_options et remplacez dans la colonne option_name la valeur wp_user_roles par new_user_roles (remarque très pertinente de Smax le 14 mars 2014)

Il semble cependant que la phase 8 soit la plus délicate,. En effet, selon l’historique de votre site WordPress (version initiale, historique des mises à jour, etc …), les entrées anciennes en wp_ varient avec une perversité qui ne surprendra aucun programmeur lucide et expérimenté. Je me permets donc de citer un extrait du commentaire très pertinent de Fand du 22 mars 2014, auquel j’ajouterai mes précisions :

Bien penser à renommer toute les entrées wp_% (et donc utiliser l’outil de recherche : voir point suivant)
Ne pas faire uniquement confiance à l’outil de recherche qui n’a pas trouvé wp_user_roles, même maintenant où je peux le voir, la recherche ne le trouve pas (ne pas oublier pas la syntaxe de recherche « %wp_% » – tout ce qui contient « wp_ » –  théoriquement ça fonctionne bien)
Et surtout, afficher plus que les 25 lignes par défauts dans phpmyadmin ! (exact, c’est très énervant cet aspect de phpadmin, on se fait toujours piéger)

ET LE TOUR EST JOUÉ ! ALORS ON DIT MERCI QUI ? (vous pouvez rajouter Smax et Fand cette fois-ci)

Pour en savoir plus, quelques livres sur WordPress

3 réflexions au sujet de « WordPress – Vous n’avez pas les droits suffisants pour accéder à cette page »

  1. Bonjour,

    Merci pour ces explications détaillés.. Cependant mon accès ne fonctionne toujours pas.
    j’ai tout essayé, votre méthode, désactivé les plugins, faire une mise à jour manuel de wordpress. Aucun résultat.
    Auriez vous une idée d’où cela peut provenir ? Peut être quelque chose d’évident que je vois pas.

    Merci

    • Bonjour,

      J’avais de mon côté fait exactement tout ce que vous avez fait. Et je n’ai fini qu’en trouvant la solution que j’expose.
      Il faudrait regarder plus dans le détail de vos fichiers de configuration. Mais j’imagine mal que vous les envoyiez avec tous les codes confidentiels etc … Je pourrais avoir de mauvaises tentations !
      Avez-vous beaucoup de données à conserver ?
      Êtes-vous passé en version 3.7.1 de WordPress ? Ma solution date en effet des versions 3.5 et 3.6 : peut-être n’est-elle plus adaptée à la version 3.7.

      Bien à Vous

Laisser un commentaire