Come aggiungere un utente WordPress da database MySQL

Mi è capitato di dovere creare un nuovo utente WordPress direttamente dal database MySQL; questa procedura può essere molto utile nel caso in cui vi imbattiate in qualche sito che è stato hackerato e siano stati eliminati gli utenti dal database. Si si, ho visto cose che voi umani non potete immaginare 🙂

Premetto che le procedura è abbastanza delicata, quindi se non si è certi di ciò che si sta facendo, meglio chiedere ad un professionista.

Intanto dobbiamo avere a disposizione gli accessi a PHPMyAdmin (o equivalente), per potere accedere al database del sito, altrimenti ciccia… Una volta avuto accesso al db MySQL….

  1. cliccare sul nome del database per espandere tutte le tabelle
  2. cliccare sulla tabella wp_users, troveremo una schermata simile a questa

    Come aggiungere un utente WordPress da database

  3. cliccare “inserisci” , la voce si trova nel menu in alto (mostra, struttura, sql, …)
  4. si aprirà il form di inserimento di un nuovo record nel database

    creazione user wordpress da mysql

    ID : assegnare un numero, se sono presenti già altri user, assegnare un numero che non sia già stato utilizzato (prendetene nota perchè lo utilizzeremo più avanti)
    user_login : questo sarà il nome utilizzato per effettuare il login, cioè la username         
    user_pass : questa sarà la password per il login (dal menu a tendina a lato sinistro del campo, selezionare “MD5”)
    user_nicename : potete scrivere quello che volete, tipo “amministratore del sito” (senza virgolette)
    user_email : indirizzo email dell’utente
    user_url : potete scrivere l’indirizzo del sito, del vostro sito o anche lasciare il campo vuoto
    user_registered : selezionare l’icona del calendario una data di creazione utente, va benissimo anche la data odierna
    user_activation_key  : lasciare vuoto
    user_status : inserire il valore “0” (zero senza virgolette)
    display_name : questo è il nome visualizzato quando sarete loggati

  5. dovreste ottenere una schermata simile a quella sottostante, una votla compilati tutti i campi

    inserimento record tabella database wp

  6. a questo punto premendo “esegui” verrà eseguita la query mysql che creeerà l’utente, ma se proviamo a loggarci otterremo questa schermata perchè l’utente è privo dei diritti

    assegnare autorizzazione utente wordpress da mysql

Come assegnare le autorizzazioni ad un utente WordPress direttamente dal database MySQL

  1. cliccare sulla tabella wp_usermeta
  2. cliccare su inserisci e compilare i campi come segue

    unmeta_id : lasciare vuoto, viene generato in automatico
    user_id : inserire l’id dell’utente creato in precedenza (nell’esempio è 9)
    meta_key : digitare “wp_capabilities” (senza virgolette)
    meta_value : “a:1:{s:13:”administrator”;s:1:”1″;}” (senza virgolette iniziali e finali)

    wp_usermeta administrator

  3. premere esegui e di nuovo inserisci, compilare i campi successivi come segue

    unmeta_id : lasciare vuoto, viene generato in automatico
    user_id : inserire l’id dell’utente creato in precedenza (nell’esempio è 9)
    meta_key : digitare “wp_user_level” (senza virgolette)
    meta_value : “10” (senza virgolette iniziali e finali)

    wp_usermeta level

  4. Ora è possibile loggarsi alla dashboard di WordPress con il nuovo utente con diritti di amministratore

Query MySQL per aggiungere un utente a WordPress con diritti amministrativi

Per chi fosse smaliziato o volesse studiarsi direttamente la query di mysql, eccola qui .

N.B.

nome database : database (sostituitelo con il vostro altrimenti non funzionerà)

username : demo

password : demo

Query MySQL per aggiungere l’utente

 Query MySQL per impostare i permessi amministrativi

 

http://ad.zanox.com/ppc/?43729199C765911427T

48 commenti su “Come aggiungere un utente WordPress da database MySQL

    • Ciao Lorenzo,

      certo, nelle 3 querry MySQL è sufficiente cambiare l’id, il nome utente ed il nome mostrato.

      Per esempio dove vedi demo inserisci “lorenzo” e dove vedi 9 inserisci “11” o comunque un id non utilizzato, in questo modo poi potrai loggarti con user e password “lorenzo”.

      Grazie per i complimenti, fanno sempre piacere 🙂

  1. Ciao Alessio.
    Ho trovato molto utile il tuo articolo e ti ringrazio.
    Ma nonostante abbia seguito tutti i passaggi punto per punto e ripetuto l’operazione più volte (elimando gli utenti creati e creandone di nuovi), continuo a non avere i permessi e mi esce l’errore “Devi farti autorizzare per accedere a questa pagina.”

    Come posso risolvere?
    Ti ringrazio
    Maurizio

    • Ciao Maurizio,
      può dipendere da diversi fattori, fai queste verifiche :

      – apri il file wp-config.php che trovi nella root di WordPress e verifica che host, nome db, user db , password db e prefisso tabelle siano in linea con quelle effettivamente utilizzate dall’istanza di Wp
      – se hai spostato il sito da locale a remoto a da un server ad un altro verifica che le path siano corrette

  2. Ciao Alessio.
    Grazie per la risposta.
    Nel file wp-config.php è tutto in regola e il sito non è stato spostato.
    In realtà funzionava regolarmente da oltre un anno e improvvisamente ora non è più visibile. Da phpMyAdmin io vedo il db e relativi contenuti quindi sicuramente è un problema di connessione al Db che credo sia adducibile ad Aruba a questo punto dato che nessuno ci ha messo mano.

    • Ciao Maurizio,
      dubito che sia di Aruba il problema per questo tipo di errore, ma potrei anche sbagliarmi, prova a leggere i log.
      Se dici che il file di configurazione è corretto proverei a rifare la procedura descritta nell’articolo, potrebbe darsi che per errore non sia stato cambiato un ID e quindi non vengano assegnate correttamente le autorizzazioni.
      Oppure qualcunno si è divertito ed ha provato a bucare il sito.

  3. Eh Alessio… purtroppo è così. Il sito è stato bucato. Nella tabella User c’era un utente che io credevo fosse un admin creato dal mio cliente (il sito gliel’ho consegnato un anno fa e se lo sono gestito loro…) che probabilmente ha fatto danni di varia natura. Infatti le tabelle dei post sono vuote e tutti i contenuti non ci sono più.
    Ti ringrazio delle risposte e a prescindere, grazie dell’artixolo che è molto interessante.
    Alla prossima 🙂

  4. Buongiorno Alessio,

    ti scrivo dopo aver seguito la tua guida relativa a come aggiungere e modificare un utente in wordpress tramite DB.

    Io ho un sito in wordpress e, dato che mi è stato consigliato di cambiare il prefisso standard wp_ ho fatto questa operazione:

    Sono andato nell’area riservata Mysql del mio servizio di hosting e ho utilizzato la query RENAME per rinominare tutte le tabelle con prefisso wp_ con il nuovo prefisso che chiamerò (nuovoprefisso_).

    A quel punto ho modificato anche il file wp-config.php con il nuovo nome di tabella. Ho poi controllato e tutte le tabelle (anche quelle interne hanno il prefisso giusto)

    Ebbene quello che è successo è che il sito è fruibile e non ha errori nel front end, riesco a vederlo e visualizzarlo correttamente.
    Nel backend invece, cioè se inserisco il mio username e la mia password su wp-admin il sistema non mi fa accedere, mi da questo errore:

    – Devi farti autorizzare per accedere a questa pagina.

    Ho seguito la tua guida e tutto è corretto i valori sono giusti ma continua a darmi questo problema. Tu mi potresti aiutare nel caso?

    • Buonasera Francesco,

      spero si sia fatto un backup preventivo del database prima di procedere con questa delicatissima operazione.

      Purtroppo non è sufficiente rinominare le tabelle con il prefesso wp_ e modificare il file wp-config.php, vi sono altre modifiche necessarie da dover apportare ma cambiano su ogni installazione di WordPress, quindi al momento vedo solo due soluzioni, o rimodifica come prima le tabelle oppure chiede consulenza ad un professionista qualsiasi non per forza a me, scelga lei.

      Se non ha dimestichezza con MySQL le consiglio questo plugin All In One WP Security che tra le altre cose ha la funzione di rinomina prefisso tabelle.

      Alessio

  5. Gentilissimo Alessio, grazie per la risposta.

    Prima di procedere a rinominare le tabelle ho fatto il backup di tutto il sito tramite servizio FTP con File zilla ma non ho fatto un backup da db mysql.

    Ho provveduto a rinominare tutte le tabelle come all’origine, con il prefisso wp_
    Come prima riesco a vedere il sito web on line perfettamente funzionante, mentre per quello che riguarda l’utente mi da sempre l’errore

    – Devi farti autorizzare per accedere a questa pagina.

    A questo punto mi viene un dubbio. Non è che per caso il problema sia da imputare agli accessi che ha l’utente?

    • Buongiorno Francesco,

      mancano le permsission sull’utenza che utilizza per accedere, se segue alla lettera questo articolo può creare una nuova utenza admministrativa ed accedere con quella.

      In che senso “[cut]… gli accessi che ha l’utente” ? Si spieghi meglio

  6. Caro Alessio,

    ho seguito alla lettera l’articolo che hai postato. Ho lanciato le query che hai postato, creando l’utente DEMO nel mio database.

    L’utente è creato correttamente perché se entro nell’area amministrativa posso inserire username e password ed entro, ma poi mi da ancora

    – Devi farti autorizzare per accedere a questa pagina.

    Mi sembra incredibile

    • Buonasera Francesco,

      in realtà non è poi così incredibile, su WP purtroppo succede spesso.

      Prova con questo metodo, prima fai un backup di tutto, db incluso.

      Crea il file force-update.php ed incolla quanto segue :

      < ?php /* WordPress Force Upgrade Script Copyright (C) 2006 Mark Jaquith This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ function txfx_log($text) { echo $text . '
      ‘;
      }

      switch ($_GET[‘step’]) :
      case “1”:
      require(‘wp-config.php’);
      txfx_log(‘WordPress loaded…’);
      require(‘wp-admin/upgrade-functions.php’);
      txfx_log(‘Upgrade functions loaded…’);
      wp_cache_flush();
      txfx_log(‘Object cache flushed…’);
      make_db_current();
      txfx_log(‘Database made current…’);
      upgrade_160();
      txfx_log(‘Data upgraded…’);
      $wp_rewrite->flush_rules();
      txfx_log(‘Rewrite rules flushed…’);
      wp_cache_flush();
      txfx_log(‘Object cache flushed…’);
      txfx_log(‘
      ‘);
      txfx_log(‘Hopefully that did it! DELETE THIS FILE FROM YOUR SERVER NOW!‘);
      txfx_log(‘And then, try to access your /wp-admin/‘);
      break;
      default :
      txfx_log(‘This script will attempt to upgrade your database. It is intended for users of WordPress 1.5 or later.’);
      txfx_log(‘You should delete this script from your server after you are done using it!‘);
      txfx_log(‘
      ‘);
      txfx_log(‘Click here to attempt the upgrade’);
      break;
      endswitch;
      ?>

      Copialo nella root (dove trovi anche il file wp-config.php)

      Apri il browser e digita nome-tuo-dominio.com/force-update.php

      Se anche così non dovesse funzionare, collegati al db e apri la tabella wp_usermeta poi cerca nella colonna wp_capabilities a:1:{s:13:”administrator”;s:1:”1″;} e ancora nella tabella wp_user_level dovresti avere valore 10.

  7. Grazie Alessio,

    putroppo non funziona neppure cosi’, stesso problema. Ho aperto anche un ticket di assistenza con il mio fornitore di hosting. Penso che l’unica soluzione sia a questo punto installare da zero wordpress con le nuove tabelle e poi importare tutti gli articoli e i contenuti presenti nel sito. In fondo quello che mi interessa di più sono tutti i contenuti dato che il layout verrà modificato nei prossimi mesi.

  8. Ciao, ho avuto diversi problemi in fase di installazione di wp in locale, in pratica l’ultimo step dell’installazione dopo inserimento user e psw riportava a pagina bianca e user e psw risultavano inesistenti. Ho seguito le indicazioni dell’articolo e finalmente riesco ad accedere tramite localhost/sito/wp-admin. Qui però sorge il problema in quanto a seguito login mi riporta alla pagina localhost/sito dove vedo in alto a dx la mia log-in ma non posso accedere alla pagina di amministrazione. ho tentato di inserire localhost/sito/wp-admin/index.php ma riporta l’errore “devi farti autorizzare”. ANche se ricarico banalmente localhost/sito/wp-admin stesso errore anche se sono già loggato. Qualche consiglio? Sto impazzendo….

    • Ciao Davide,

      se dopo che inserici l’url per effetturare il login ti rimanda ad un’altra pagina significa che c’è un’errata configurazione del path assoluto di WP, fai in questo modo, scarica via PHPMyAdmin il database (ossia fai un dump del db), apri il file .sql con un editor di testo a basso livello tipo textedit, fai un search “localhost/sito/” e sostituiscilo con “http://localhost:8888/sito/”, poi elimina tutte le tabelle del db (le tabelle non il db stesso) e fai un import sempre da PMA.

      Per la pagina bianca invece potrebbe essere semplicemente la versione di PHP, l’ultima versione di MAMP ha introdotto PHP 7, utilizza invece la 5.6.1.0 dalle impostazioni di MAMP.

  9. Ciao. Riesco tranquillamente ad entrare nel pannello di controllo wordpress con i miei dati da super user ma non mi da la possibilità di effettuare modifiche, inserire articoli ecc…vedo solo la pagina di benvenuto. Ho provato a seguire la procedura, creo nuovi utenti ma non riesco a modificare i permessi….come potrei risolvere?

  10. Ciao Ho eseguito la procedura descritta passo per passo, ma riottengo lo stesso risultato ovvero:
    – Devi farti autorizzare per accedere a questa pagina.
    … non capisco se è una questione di permessi…
    notavo però che agli altri utenti nel wp_usermeta ci sono anche altri valori assegnati.. sarà quello il motivo?

  11. Ho risolto :-)) forse qualcosa copiato male nell istruzioni… ho copiato il meta_value da un altro utente amministratore ed è andato 🙂

  12. Salve,
    ho seguito tutta la guida per aggiungere un utente in WP tramite phpmyadmin ma nisba, mi entra ma mi compare solo la barra in alto con tanto di logo WP ma non vedo la barra delle pagine, articoli ecc.

    • Buongiorno Michele,

      se non vede correttamente tutti gli elementi a back end è un problema di permessi, sicuro di avere eseguito corretamente tutte le query ? In special modo le ultime due ? Le ricordo che vanno modificati dei parametri con i dati del suo db prima di essere utilizzate.

  13. Grazie per la risposta Alessio. Ho risolto. In pratica mi sono accorto che il wp_capabilities è direttamente collegato ai nomi delle tabelle stesse di phpmyadmin e quindi dall’impostazione iniziale di WordPress. Mi è bastato cambiare il wp_capabilities con un altro tipo di dicitura (uguale alle tabelle impostate su WP) come ad esempio: dgdsgd_capabilities. Ha funzionato. Ora infatti vedo tutta la barra di amministrazione a sinistra, come avessi creato l’utente dal pannello admin di WP.

  14. Ciao Alessio, complimenti per il tuo articolo.
    Ho bisogno di un plugin o qualcosa di simile con lo scopo di autorizzare uno o più utenti alla registrazione dei vari user direttamente da una pagina web (front end) questo per evitare che entri nella Dashboard di wp; rendendo le cose più semplici anche a chi non ne capisce nulla di programmazione web.
    Sai se per caso esiste qualcosa di simile o che mi permetta di fare questo?
    Grazie

  15. Articolo interessante
    Avrei da porre una domanda

    Con le ultime versioni di WordPress è cambiato qualcosa?

    L’utente sono riuscito a crearlo ma in nessun caso ad impostarlo come amministratore.
    Si crea un utente ruolo “Nessuno” !

  16. Dal phpmyadmin > tabella wp_user 1° passaggio (nel mio caso il prefisso è diverso, ho provato a regolarmi di conseguenza ma nulla da fare) e wp_usermeta nel 2°

    Una differenza che ho subito notato dopo il 1° passaggio è stata che io potevo loggarmi senza rilascio di errori

    Semplicemente una volta loggato non potevo fare nulla!

  17. Ciao Alessio e grazie per la guida.. Problema: nell’inserimento dei dati in wp_usermeta non appare il nome utente e alcune righe risultano NULL, in fase di inserimento ho una doppia maschera separata da una spunta “Ignora”

  18. Ciao,
    volevo segnalarti che la stringa “a:1:{s:13:”administrator”;s:1:”1″;}” varia in base alle versioni di WordPress.
    Consiglio di duplicare quella relativa all’amministratore già esistente.

    Sulla versione 4.2.15 ho utilizzato questa:

    a:1:{s:13:”administrator”;b:1;}

Commenta l'articolo

Bisogno di postare codice ? Usa un servizio gratuito come Codeshare altrimenti WordPress formatta male il codice!

Pin It on Pinterest

Condividi l'articolo. Grazie.

Vuoi essere aggiornato ?