Skip to main content
Geschätzte Lesedauer: 5 Minuten

Was sind Benutzerrollen in WordPress?

Benutzerrollen in WordPress definieren die Berechtigungen und den Zugriffsumfang verschiedener Benutzer auf eine WordPress-Website. Standardmäßig gibt es fünf Hauptbenutzerrollen: Administrator, Redakteur, Autor, Mitarbeiter und Abonnent. Jede Rolle hat unterschiedliche Fähigkeiten und Zugriffsrechte, die es den Benutzern ermöglichen, bestimmte Aufgaben auszuführen. Administratoren haben beispielsweise die höchsten Berechtigungen und können die gesamte Website verwalten, während Abonnenten nur in der Lage sind, ihr eigenes Benutzerprofil zu verwalten und Inhalte zu abonnieren.

Benutzerrollen können im Administrationsbereich von WordPress wie folgt geändert werden:

  • Navigiere zum Menüpunkt „Benutzer“ und wähle „Benutzer“ aus.
  • Eine Liste aller Benutzer deiner Website wird angezeigt. Wähle den Benutzer aus, dessen Rolle du ändern möchtest, und klicke auf seinen Benutzernamen, um sein Profil zu öffnen.
  • Im Benutzerprofil scrollst du nach unten zum Abschnitt „Rollen“. Hier siehst du die aktuelle Rolle des Benutzers.
  • Wähle die neue Rolle für den Benutzer aus dem Dropdown-Menü aus.
  • Klicke auf „Änderungen speichern“, um die neue Rolle für den Benutzer zu übernehmen.
wp_admin profil role edit

Im Administrationsbereich können die Benutzerrollen angepasst werden

Nachdem die Änderungen gespeichert wurden, hat der Benutzer die neuen Berechtigungen entsprechend seiner neuen Rolle. Beachte, dass nur Benutzer mit Administratorrechten die Rollen anderer Benutzer ändern können.

Änderungen der Benutzerrollen in der Datenbank

In einigen Fällen kann es notwendig sein, Benutzerrollen direkt über Änderungen in der Datenbank anzupassen. Dies könnte beispielsweise der Fall sein, wenn der Zugriff auf den Administrationsbereich verloren geht und manuelle Intervention erforderlich ist. In diesem Kontext bietet die direkte Bearbeitung der Benutzerrollen in der Datenbank eine alternative Lösung. Es ist jedoch wichtig, äußerst vorsichtig bei solchen Eingriffen zu sein, da unsachgemäße Änderungen an der Datenbank zu unerwünschten Problemen führen können.

In diesem Beitrag ändern wir nun die Rolle eines Nutzers über die Datenbank mit phpMyAdmin.

Zur Anpassung der Benutzerrollen ist eine Tabelle der Datenbank wesentlich: wp_usermeta. In dieser Tabelle sind alle Metadaten eines Nutzers eingetragen. Die Einträge haben jeweils ein Feld ID, die der User-ID eines Nutzers entspricht.

Wie finde ich die ID eines Nutzers?

Alle Grunddaten zu bestehenden Nutzer sind in der Tabelle wp_users eingetragen. Um herauszufinden welche ID ein bestimmter Nutzer hat, kann die Suche Funktion in phpMyAdmin genutzt werden. Dort kann die wp_users Tabelle z.B. nach einer Email oder auch einem Name abgefragt werden.

wp_db user find

Durch die Such-Funktion von phpMyAdmin können Einträge auch in großen Datensätzen leicht gefunden werden.

Dem Datensatz, der die Angaben zu Email, Nutzernamen und dergleichen beinhaltet, ist auch das Feld ID zu geordnet. Diese ID ist die eindeutige Nutzer-ID. Damit können wir nun die Tabelle wp_usermeta abfragen, um alle wesentlichen Metadaten, und auch die Rollenzuweisung, für einen bestimmten Nutzer zu erfahren.

wp_db get usermeta by id

Die Tabelle wp_usermeta wird per ID gefiltert

Die Metadaten eines Nutzers

Jetzt sehen wir alle Metadaten genau dieser ID. Der für uns relevante Eintrag ist dabei wp_capabilities.

Die Metadaten zu einer bestimmten ID

Der Datenbankeintrag wp_capabilities

Der Datenbankeintrag wp_capabilities ist ein Schlüsselwert in der WordPress-Datenbank, der die Benutzerrollen und ihre zugehörigen Fähigkeiten für jeden Benutzer speichert. Dieser Eintrag definiert, welche Aktionen und Funktionen ein Benutzer auf der Website durchführen kann. Die Informationen im wp_capabilities-Feld werden als serialisierte Daten gespeichert, normalerweise in Form eines PHP-Arrays.

a:1:{s:10:"subscriber";b:1;}

Hier wird der Eintrag in als PHP-Array-Syntax dargestellt. In diesem Beispiel hat der Benutzer die Rolle mit dem Anzeigenamen „Abonnent“, was durch den Schlüssel „s:10:subscriber“ angezeigt wird.“s:10:“ gibt dabei an, wie lang die folgende Zeichenkette ist, und „subscriber“ ist der sogenannte Slug der Rolle. Der zugehörige Wert „b:1;“ gibt an, dass dieser Benutzer diese Rolle hat (1 steht dabei für wahr oder aktiviert).

Wie finde ich den Slug zu einem bestimmten Anzeigename einer Rolle?

Man kann den Slug für eine Benutzerrolle direkt in der Datenbank suchen. Der Name der Benutzerrolle wird normalerweise als Schlüssel in der Tabelle wp_options unter dem Schlüssel wp_user_roles gespeichert.

Benutzerrolleneintrag in der Tabelle: wp_options

Dort steht der Slug zu Beginn eines Eintrages gefolgt vom Anzeigename und den Capabilities der Rollen, den Zugriffsrechten.

Änderung der Benutzerrolle

Durch die Anpassung des Schlüssel a:1:{s:10:“subscriber“;b:1;} kann nun die Benutzerrolle geändert werden z.B. in a:1:{s:13:“administrator“;b:1;}. Dadurch würde der Benutzer jetzt die Benutzerrolle „Administrator“ haben und nicht mehr „Abonnent“ und hätte entsprechend andere Zugriffsrechte auf die Webseite.

In WordPress ist es möglich, einem Benutzer mehrere Rollen zuzuweisen, was als „multiple user roles“ bezeichnet wird. Standardmäßig erlaubt WordPress einem Benutzer, nur eine Hauptrolle zu haben. Die Fähigkeit, mehrere Rollen einem einzelnen Benutzer zuzuweisen, wird jedoch durch WordPress selbst nicht nativ unterstützt, kann aber durch die Erweiterung dieses Dantebankeintrages erreicht werden.

Wenn ein Benutzer mehrere Rollen haben soll, müssen weitere Schlüssel-Wert-Paare in der Zeichenkette enthalten sein. Ein Eintrag mit 2 Benutzerrollen sähe z.B. so aus:

a:2:{s:13:"administrator";b:1; s:10:"subscriber";b:1;}

„a:2“ gibt hierbei an, dass es insgesamte 2 Einträge gibt.

Bei der Vergabe mehrerer Benutzerrollen für einen Benutzer ist zu beachten, dass Zugriffsrechte mehrere Benutzerrollen, die sich überlagern, zu Konflikten führen können.

Vorsicht bei der direkte Bearbeitung der WordPress-Datenbank

Die direkte Bearbeitung der WordPress-Datenbank ist ein sensibler Vorgang, der Vorsicht und Präzision erfordert. Zugriffe auf die Datenbank sollten idealerweise vermieden werden, es sei denn, es besteht eine klare Notwendigkeit und ein fundiertes Verständnis für die Datenstruktur. Dennoch ist es riskant, diese Daten direkt zu ändern, da Fehler zu unerwartetem Verhalten oder sogar zum Ausfall der Website führen können.

Vor jeder Datenbankbearbeitung ist es ratsam, ein vollständiges Backup durchzuführen, um eine schnelle Wiederherstellung im Falle von Problemen zu ermöglichen. Generell ist es empfehlenswert, Benutzerrollen über die WordPress-Admin-Oberfläche zu ändern, da dies den Sicherheitsstandards entspricht und die Integrität der Website bewahrt. Auch kann die Nutzung von Plugins wie z.B. User Role Editor hilfreich sein.