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….
- cliccare sul nome del database per espandere tutte le tabelle
- cliccare sulla tabella wp_users, troveremo una schermata simile a questa
- cliccare “inserisci” , la voce si trova nel menu in alto (mostra, struttura, sql, …)
- si aprirà il form di inserimento di un nuovo record nel database
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 - dovreste ottenere una schermata simile a quella sottostante, una votla compilati tutti i campi
- 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
Come assegnare le autorizzazioni ad un utente WordPress direttamente dal database MySQL
- cliccare sulla tabella wp_usermeta
- 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)
meta_value per WordPress da 4.61: a:1:{s:13:”administrator”;b:1;} (senza virgolette iniziali e finali) - 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) - 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
1 |
INSERT INTO `databasename`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('9', 'demo', MD5('demo'), 'Super Slot', 'test@dominio.com', 'http://www.dominio.com/', '2015-02-06 00:00:00', '', '0', 'super slot'); |
Query MySQL per impostare i permessi amministrativi
1 |
INSERT INTO `databasename`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '9', 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}'); |
Query per versioni WordPress da 4.61
1 |
INSERT INTO `databasename`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '9', 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'); |
1 |
INSERT INTO `databasename`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '9', 'wp_user_level', '10'); |
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.
ciao,
articolo molto interessante e di aiuto,
ma volevo fare 1 domanda,
è possibile creare 2 amministratori in wp?
grazie
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 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.
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 🙂
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?
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?
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
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.
Intanto grazie mille per il supporto, è stato gentilisismo
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….
Grazie delle info, proverò con la modifica al db.
Comunque uso xampp con php 5.6
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?
Riesco a vedere soltanto la barra superiore, la bacheca, il benvenuto e il profilo…non c’è nessun’altra voce
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?
Ho risolto :-)) forse qualcosa copiato male nell istruzioni… ho copiato il meta_value da un altro utente amministratore ed è andato 🙂
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.
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.
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
Ciao Alessio, grazie per il consiglio, l’app sembra essere quella giusta. Con qualche aggiustamento sicuramente farà al caso mio
Grazie ancora 😉
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” !
Tutte, passo passo: l’utente si crea ma non si riesce a dargli un “ruolo”
Si, era il “2” ed ho inserito il 2!
Può essere che plugin tipo “all in one wp security” blocchino questa possibilità?
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!
Purtroppo i test li stavo facendo offline tramite XAMPP
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”
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;}
Grazie per l’articolo, è veloce ed efficace… concordo con la correzione dell’ultimo commento !
Buondì, ho bisogno di un aiuto.
Ho rimesso online un sito web creato in wordpress dopo circa due anni, ho cambiato dominio da .it a .com. Ho problemi ora con l’accesso al pannello di controllo. Ho sguito passo passo questa guida ma quando inserisco user e password non mi fa accedere. Potrebbe essere il problema della differente versione di wordpress (4.6.1) che con questa stringa a:1:{s:13:”administrator”;s:1:”1″;} non va??
Ciao,
ho cercato di seguire la tua guida per modificare il ruolo utente dal db, ora è Sottoscrittore e voglio portarlo ad Amministratore. Come ID è 20. Ho messo i 2 codici in SQL + Esegui così, ma non cambia:
INSERT INTO `nome-database`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, ’20’, ‘wp_capabilities’, ‘a:1:{s:13:”administrator”;s:1:”1″;}’);
INSERT INTO `nome-database`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, ’20’, ‘wp_user_level’, ’10’);