Bei den neueren WordPress Versionen tritt die Fehlermeldung „Du hast nicht die erforderlichen Rechte, um auf diese Seite zuzugreifen.“ mittlerweile seltener auf, es passiert aber immer noch ab und an, das man nach einem Upgrade mit diesem Fehler konfrontiert wird.
Die Meldung weist dabei darauf hin, dass es im Bereich der Nutzer/Rechteverwaltung zu einem Problem gekommen ist und das Recht (in der Regel Administrator-Rechte) in der Datenbank nicht mehr korrekt gelesen werden können. Die Gründe für diesen Fehler sind vielfältig, oft entsteht er aber bei einem Update, bei dem die Datenbank in bestimmten Bereichen nicht mehr korrekt geschrieben/gelesen werden kann.
Die manuelle Korrektur ist sehr kompliziert, da man in der Datenbank die Admin-Rechte per Hand neu setzen muss und das auch mit langer WordPress-Erfahrung nach wie vor kein einfaches Unterfangen ist. Man kann dabei auch sehr viel mehr kaputt machen.
Sinnvoller ist daher ein Vorgehen, dass ich bei profi-blog.com gefunden habe. Es wird dabei versucht das Upgrade der Datenbank erneut durchzuführen. In vielen Fällen werden bei einem neuen Versuch die Rechte richtig gesetzt und der Fehler damit beseitigt. Das Verfahren beschreibt man dort wie folgt:
- Sicherung Ihrer WordPress-Datenbank und Ihrer Quellcodes
- Download der Datei force-upgrade.zip
- Datei force-upgrade.zip entpacken zu force-upgrade.php
- Per ftp die Datei force-upgrade.php in das Root-Directory Ihres WordPress-webs kopieren (Gleiches Verzeichnis, in dem die wp-config.php steht
- Diese Datei über Ihren Browser aufrufen, z. B. http://www.<ihre-domain>/force-upgrade.php
- Jetzt müssten Sie wieder Zugriff auf das Dashboard Ihres WordPress-Blogs haben
- Die Datei force-upgrade.zip wieder von Ihrem Webspace löschen
Prinzipiell halte ich wenig davon, externe Dateien auf den Server zu laden und auszuführen, die Datei basiert aber auf einen Fix aus dem WP Forum (hier) und enthält an sich nur Befehle um das Upgrade der Datenbank anzustoßen. Wer auf Nummer Sicher gehen möchte, kann auch direkt den Code aus dem Forum in eine Datei kopieren.
<?php
/*
WordPress Force Upgrade Script
Copyright (C) 2006 Mark Jaquith
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
function txfx_log($text) {
echo $text . '<br />';
}
switch ($_GET['step']) :
case "1":
require('wp-config.php');
txfx_log('WordPress loaded...');
require('wp-admin/upgrade-functions.php');
txfx_log('Upgrade functions loaded...');
wp_cache_flush();
txfx_log('Object cache flushed...');
make_db_current();
txfx_log('Database made current...');
upgrade_160();
txfx_log('Data upgraded...');
$wp_rewrite->flush_rules();
txfx_log('Rewrite rules flushed...');
wp_cache_flush();
txfx_log('Object cache flushed...');
txfx_log('<br />');
txfx_log('Hopefully that did it! <strong>DELETE THIS FILE FROM YOUR SERVER NOW!</strong>');
txfx_log('And then, try to access your <code>/wp-admin/</code>');
break;
default :
txfx_log('This script will attempt to upgrade your database. It is intended for users of WordPress 1.5 or later.');
txfx_log('<strong>You should delete this script from your server after you are done using it!</strong>');
txfx_log('<br />');
txfx_log('<a href="?step=1">Click here</a> to attempt the upgrade');
break;
endswitch;
?>Fehlerhafte wp-config.php
Wenn Du Änderungen in der wp-config.php (im WordPress Hauptverzeichnis) vorgenommen hast, kann der Fehler „Du hast nicht die erforderlichen Rechte um auf diese Seite zuzugreifen“ ebenfalls auftreten.
- Prüfe, ob die Zeile:
require_once(ABSPATH . ‚wp-settings.php‘);
ganz unten als letzte Zeile in der Datei steht.
- Hast Du den Tabellen-Präfix geändert (Variable: $table_prefix)? Falls ja, prüfe ob Du alle Tabellen in Deiner Datenbank mit dem neuen Präfix umbenannt hast.
- Hast Du die SALT-Keys geändert? Diese sehen bspw. so aus:
Falls ja, könnten die Keys ungültig sein. Gehe auf diese Seite von wordpress.org und lasse Dir neue SALT-Keys generieren. Ersetze diese anschließend durch die alten Keys.
Die Datenbank ist beschädigt
Möglich ist auch, dass die Datenbank beschädigt ist. In diesem Fall sollte soweit vorhanden ein Backup eingespielt werden. Sollte kein Backup vorhanden sein, haben wir hier in unserem Artikel „Beschädigte WordPress-Datenbank reparieren“ eine Anleitung zur Reparatur verfasst.
1. Möglichkeit: Reparatur auf Datenbankebene
Wenn Du Dich mit Datenbanken und MySQL etwas auskennst, kannst Du beschädigte Datenbanktabellen mit dem MySQL Befehl „REPAIR Tabellenname“ reparieren („Tabellenname“ muss natürlich durch die jeweilige Tabelle ersetzt werden). Dies muss für jede Tabelle einzeln erfolgen. Mit dem Datenbankmanagement-Tool phpMyAdmin kannst Du auch alle Tabellen auswählen und diese dann reparieren.
2. Möglichkeit: WP_ALLOW_REPAIR
WordPress bietet für die Datenbank-Reparatur eigene Bordmittel an. Für die Durchführung sind nur wenige technische Kenntnisse erforderlich.
- Öffne die wp-config.php (im WordPress-Hauptverzeichnis).
- Füge die folgende Zeile fast ganz ans Ende der Datei, direkt über die Zeile „if ( !defined(‚ABSPATH‘) )
define(‚ABSPATH‘, dirname(__FILE__) . ‚/‘);„Zeile zum Einfügen:define (‚WP_ALLOW_REPAIR‘, true);
Das ganze sieht dann so aus:
- Als nächstes musst Du im Browser folgende URL aufrufen: http://deine-seite.de/wp-admin/maint/repair.php
Natürlich musst Du vorher „deine-seite.de“ durch Deine Domain ändern. Jetzt solltest Du auf eine Oberfläche gelangen, die so aussieht: - Klicke jetzt auf „Datenbank reparieren„. Alternativ kannst Du auch auf „Repariere und optimiere die Datenbank“ klicken. Dann werden zusätzlich Deine Tabellen aus Performance-Sicht optimiert. WordPress wird Dir zum Abschluss jetzt einen Statusreport ausgeben:
- Deine Datenbanktabellen wurden jetzt repariert. Vergiss zum Abschluss nicht die Zeile „define(‚WP_ALLOW_REPAIR‘, true);“ aus der wp-config.php wieder zu löschen.




