Recently a website was presenting the dreaded “You do not have sufficient permissions to access this page” message when logging in. However, I was able to access the WordPress backend by clicking links in the top admin navigation. I still had access to create/edit posts and pages, edit themes, install and activate plugins, add new new users, etc…
After testing further pages, the only ones I couldn’t access were:
- /wp-admin
- wp-admin/update-core.php
- /wp-admin/profile.php
Troubleshooting
The website was also using the S2Members plugin that creates a lot of extra roles. While it shouldn’t cause a conflict, this website had a lot of customizations and I was asked to fix it down the road. I wasn’t sure what had been changed or where to start looking.
To diagnose the issue, I deactivated all plugins and enabled the default Twenty Fourteen theme. I also reinstalled the core WordPress files. Lastly, I did a clean WordPress install on a subdomain and only restored the database. None of these typical troubleshooting techniques fixed the issue. This led me to believe the issue was in the WordPress database itself.
Potential Fixes
After much searching on the issue, the only people that seemed to have these problems usually couldn’t access the dashboard completely. Here are a few of the suggested fixes that didn’t fix my situation:
- Check the database table prefixes. Sometimes people use something other than the default “wp_” prefix. In my case, I was still using the “wp_” prefix. These prefixes are case-sensitive.
- Inspect the wp_usermeta tables in phpMyAdmin. The meta_value for your admin account should have this value (without quotes): “a:1:{s:13:”administrator”;s:1:”1″;}”
- Go to /wp-admin/options.php and change db_version to 8204. If you can’t access this page, then change it using phpMyAdmin. Then navigate to another page and you will be prompted to upgrade your database.
How I fixed it
None of those potential fixes worked for me, but the following did. I had to install the plugin User Role Editor. After installing, go to the options of the plugin and check the box to enable the administrator to be visible. Then go to Users > User Role Editor. Select the role Administrator from the dropdown. Click the “Select All” button and then “Update”. That reset all my administrator permissions and I could then access all pages in the WordPress backend.
Nice thank you very much !