Unter manchen Umständen kann es vorkommen, dass man keinen Zugang (mehr) zum WordPress Adminbereich hat, weil der eigene Account nicht über die nötigen Adminrechte verfügt.
Inhaltsverzeichnis
So findest du den Benutzerrolleneintrag in der Datenbank
Wenn man aber Zugriff auf die Datenbank hat, etwa über seinen Hoster im Adminbereich phpMyAdmin starten kann, dann kann man die User Zugriffsrechte direkt in der Datenbank einstellen.
Die Benutzerrollen sind gespeichert in der wp_usermeta
Datenbanktabelle mit dem meta_key wp_capabilities. Falls Deine WordPress Installation ein anderes Datenbank Prefix hat, kann die Tabelle auch anders heissen, etwa xxx_usermeta
.
WordPress User ID herausfinden
Um die Rolle für den gewünschten Benutzer ändern zu können, brauchst Du zuerst einmal die ID des Users. Die solltest Du in der Tabelle wp_users
finden.
Sind dort sehr viele User eingetragen, kannst du deinen User nach einer Suche per SOL Befehl ausfindig machen. Um einen SQL Befehl eingeben zu können, musst du im Menü oben auf SQL klicken.
Dann kommt ein Textfeld in das du den Befehl schreiben kannst. Zum abschicken musst Du unten rechts auf OK klicken.
So suchst Du nach dem Benutzer, wenn Du seine E-Mail kennst:
SELECT * FROM `wp_users` WHERE `user_email` = `deineemail@domain.de`
Oder wenn du nur den Namen oder nur einen Teil des Namens hast, kannst du diesen SQL Befehl verwenden. Beachte dass du den Namen an drei Stellen eintragen musst:
SELECT * FROM `wp_users`
WHERE user_login LIKE '%franz%' OR user_nicename LIKE '%franz%' OR display_name LIKE '%franz%'
Aus der Spalte ID erkennst du nun, welche ID der User hat.
User Meta Einträge eines WordPress Benutzers finden
Die bekannte User ID kannst Du nun einsetzen, um die user_meta Einträge des Users zu finden:
SELECT * FROM `wp_usermeta` WHERE user_id = 1
So machst Du einen User zum Administrator via phpMyAdmin
In phpMyAdmin lässt sich die Rolle per Doppeklick auf den bisherigen Eintrag mit dem meta_key wp_capabilites
ändern. a:1:{s:13:"administrator";b:1;}
muss in der Spalte meta_value
stehen, damit der User Adminrechte hat.
Falls Du dich fragst, warum dort nicht einfach nur „administrator“ steht, sondern diese kryptische Zeichenkette mit „a:1:{…“, hier die Erklärung: Der Wert, der hier eingetragen ist, ist als serialisierter Dateneintrag gespeichert. Das ist so, weil ein Benutzer prinzipiell auch mehrere Rollen innehaben kann. Der Wert ist also in PHP ein Array. Das wiederum wird serialisiert als Zeichenkette und sieht dann eben so aus.
Achtung: Du kannst nicht einfach nur den Rollennamen austauschen. Du musst auch die Zeichenanzahl hinter dem „s“ anpassen. Ansonsten ist der Eintrag ungültig und der User hat womöglich überhaupt keine Rolle mehr. Weil das recht mühsam ist, nachfolgend noch die korrekten Einträge für die üblichen Userrollen.
Einträge für unterschiedliche Nutzerrollen
Der Eintrag ist in der Form von serialisierten Daten eingetragen. Deswegen kann man nicht einfach nur z. B. subscriber durch administrator ersetzen. Dann würde das Format nicht mehr stimmen.
Untenstehend findest Du die jeweiligen Einträge für die Standardrollen in WordPress:
Abonnent (Subscriber)
a:1{s:10:"subscriber";b:1;}
Mitarbeiter (Contributor)
a:1:{s:11:"contributor";b:1;}
Autor (Author)
a:1:{s:6:"author";b:1;}
Redakteur (Editor)
a:1:{s:6:"editor";b:1;}
Administrator
a:1:{s:13:"administrator";b:1;}
Benutzerrolle per SQL ändern
Du kannst die Rolle auch mit einem SQL-Befehl ändern, das würde so gehen für den Benutzer mit der ID 12:
UPDATE wp_usermeta
SET meta_value='a:1:{s:13:"administrator";b:1;}'
WHERE user_id=12 AND meta_key='wp_capabilities'