Προσθήκη Admin User μέσω MySQL στο WordPress

Δημοσιεύθηκε 09/03/2021

“Των φρονίμων τα παιδιά πριν πεινάσουν μαγειρεύουν”. Στην απευκταία περίπτωση που το site σου χακαρίστηκε, ή κάτι πήγε στραβά και δεν έχεις πρόσβαση στην ιστοσελίδα σου με τον admin user, θα δείξω τον τρόπο που το κάνουμε μέσω της MySQL βάσης δέδομένων.

Προσωπικά, βέβαια, χρησιμοποιώ τον ακόλουθο τρόπο και για πολύ πιο απλές περιπτώσεις όπου κάποιος έχει ξεχάσει τα στοιχεία του λογαριασμού του, ή χρειάζεται να πάρω πρόσβαση σε μία ιστοσελίδα ως διαχειριστής.

1ος τρόπος: Αναλυτικός

(Πήγαινε απευθείας στον συνοπτικό τρόπο)

Συνδέομαι στην βάση δεδομένων και σημειώνω το table prefix της βάσης μου όπου συνήθως είναι “wp_“. Στην δική μου περίπτωση είναι μία πιο περίπλοκη κωδικοποίηση: “KVpghrUIz_“.

adminUserDatabase1

Πίνακας …_users

Επιλέγω τον πίνακα “KVpghrUIz_users” και βλέπω από τους χρήστες που έχει το site μου (στο παράδειγμα είναι μόνο ένας) τα IDs για να βρω κάποιο διαθέσιμο. Εγώ επιλέγω το “2” γιατί δεν υπάρχει χρήστης με αντίστοιχο ID.

adminUserDatabase2

Επιλέγω “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
adminUserDatabase3
Insert στον πίνακα KVpghrUIz_users

Πίνακας …_usermeta

Στην συνέχεια επιλέγω τον πίνακα “KVpghrUIz_usermeta” για να προσθέσω διαδοχικά τις ακόλουθες δύο εγγραφές.

1ο insert με δεδομένα:

  • user_id: Εισάγω το ίδιο ID που δήλωσα στο προηγούμενο βήμα, στην περίπτωσή μου το 2
  • meta_key: δηλώνω το KVpghrUIz_capabilities (βάζοντας το ανάλογο πρόθεμα της δικής μου βάσης)
  • meta_value: Δηλώνω το a:1:{s:13:”administrator”;s:1:”1″;}
adminUserDatabase4
1ο Insert στον πίνακα KVpghrUIz_usermeta

2ο insert με δεδομένα:

  • user_id: Εισάγω το ίδιο ID που δήλωσα στο προηγούμενο βήμα, στην περίπτωσή μου το 2
  • meta_key: δηλώνω το KVpghrUIz_user_level (βάζοντας το ανάλογο πρόθεμα της δικής μου βάσης)
  • meta_value: Δηλώνω τον αριθμό 10
adminUserDatabase5
2ο Insert στον πίνακα KVpghrUIz_usermeta

Ο χρήστης πλέον δημιουργήθηκε και μπορώ να συνδεθώ με admin δικαιώματα στην ιστοσελίδα.

adminUserDatabase6

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');

Ο χρήστης πλέον έχει δημιουργηθεί γράφωντας μόνο μία εντολή στην βάση δεδομένων.