Προσθήκη Admin User μέσω MySQL στο WordPress
Δημοσιεύθηκε 09/03/2021
“Των φρονίμων τα παιδιά πριν πεινάσουν μαγειρεύουν”. Στην απευκταία περίπτωση που το site σου χακαρίστηκε, ή κάτι πήγε στραβά και δεν έχεις πρόσβαση στην ιστοσελίδα σου με τον admin user, θα δείξω τον τρόπο που το κάνουμε μέσω της MySQL βάσης δέδομένων.
Προσωπικά, βέβαια, χρησιμοποιώ τον ακόλουθο τρόπο και για πολύ πιο απλές περιπτώσεις όπου κάποιος έχει ξεχάσει τα στοιχεία του λογαριασμού του, ή χρειάζεται να πάρω πρόσβαση σε μία ιστοσελίδα ως διαχειριστής.
1ος τρόπος: Αναλυτικός
(Πήγαινε απευθείας στον συνοπτικό τρόπο)
Συνδέομαι στην βάση δεδομένων και σημειώνω το table prefix της βάσης μου όπου συνήθως είναι “wp_“. Στην δική μου περίπτωση είναι μία πιο περίπλοκη κωδικοποίηση: “KVpghrUIz_“.
Πίνακας …_users
Επιλέγω τον πίνακα “KVpghrUIz_users” και βλέπω από τους χρήστες που έχει το site μου (στο παράδειγμα είναι μόνο ένας) τα IDs για να βρω κάποιο διαθέσιμο. Εγώ επιλέγω το “2” γιατί δεν υπάρχει χρήστης με αντίστοιχο ID.
Επιλέγω “Insert” για να προσθέσω νέα εγγραφή στον πίνακα, και συμπληρώνω σύμφωνα με τα ακόλουθα:
- ID: δηλώνω ένα ελεύθερο ID, στην περίπτωσή μου το 2
- user_login: το username που θέλω για την σύνδεσή μου στο dashboard
- user_pass: ο κωδικός για τον λογαριασμό μου. Σημαντική η δήλωση ως MD5
- user_nicename: το nicename αν θέλω να εμφανίζεται ως κάτι διαφορετικό
- user_email: το email του λογαριασμού μου
- user_registered: επιλέγω ημερομηνία για το πότε δημιουργήθηκε ο λογαριασμός
- user_status: δηλώνω το 0
- display_name: το display name, συνήθως όπως το nicename
Πίνακας …_usermeta
Στην συνέχεια επιλέγω τον πίνακα “KVpghrUIz_usermeta” για να προσθέσω διαδοχικά τις ακόλουθες δύο εγγραφές.
1ο insert με δεδομένα:
- user_id: Εισάγω το ίδιο ID που δήλωσα στο προηγούμενο βήμα, στην περίπτωσή μου το 2
- meta_key: δηλώνω το KVpghrUIz_capabilities (βάζοντας το ανάλογο πρόθεμα της δικής μου βάσης)
- meta_value: Δηλώνω το a:1:{s:13:”administrator”;s:1:”1″;}
2ο insert με δεδομένα:
- user_id: Εισάγω το ίδιο ID που δήλωσα στο προηγούμενο βήμα, στην περίπτωσή μου το 2
- meta_key: δηλώνω το KVpghrUIz_user_level (βάζοντας το ανάλογο πρόθεμα της δικής μου βάσης)
- meta_value: Δηλώνω τον αριθμό 10
Ο χρήστης πλέον δημιουργήθηκε και μπορώ να συνδεθώ με admin δικαιώματα στην ιστοσελίδα.
2ος τρόπος: Συνοπτικός
Το μόνο που χρειάζεται να γνωρίζω είναι το table prefix της βάσης μου, συνήθως είναι το “wp_“, στον παρακάτω κώδικα θα γράφω “PREFIX_“, και ένα διαθέσιμο ID για τον νέο χρήστη που θα εισάγω. Αυτό το βρίσκω στον πίνακα “PREFIX_users” αποφεύγωντας τα κατειλημμένα ids των ήδη υπαρχόντων χρηστών, στο παράδειγμά μου το νούμερο 2.
Αφού τα εντοπίσω είμαι πλέον σε θέση να γράψω την ακόλοθη sql εντολή, αλλάζοντας τα bold γράμματα για να ταιριάζουν με αυτά που θέλω.
INSERT INTO `PREFIX_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('2', 'newUser', MD5('newPassword'), 'newUser', 'newUser@newUser.com', '', '2021-02-23 18:00:00', '', '0', 'newUser');
INSERT INTO `PREFIX_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '2', 'PREFIX_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
INSERT INTO `PREFIX_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '2', 'PREFIX_user_level', '10');
Ο χρήστης πλέον έχει δημιουργηθεί γράφωντας μόνο μία εντολή στην βάση δεδομένων.