Como corrigir Sorry, you are not allowed to access this page no WordPress
O que é o erro Not Allowed To Access no WordPress?
Sorry, you are not allowed to access this page e a mensagem que o WordPress mostra quando bloqueia uma tela do admin porque o usuário atual não tem a capability necessaria. Diferente do erro 403, que vem do servidor web, este bloqueio vem de dentro do próprio WordPress: ele consultou o papel do usuário na tabela de capacidades e não encontrou a permissão pedida. Por isso a tela carrega o cabeçalho do painel e so entao corta o acesso, em vez de devolver um erro de servidor.
Como identificar
- A tela do admin abre o topo do painel e mostra “Sorry, you are not allowed to access this page.” no lugar do conteúdo.
- O acesso some logo após uma migração de site, troca de prefixo de tabela ou restauração de backup.
- Um usuário que era administrador agora aparece como assinante ou sem papel definido em Usuários.
- So algumas áreas falham (ex.: Plugins ou Ferramentas) enquanto o resto do painel abre normal.
Como prevenir
- Após migrar, confirme sempre que o $table_prefix do wp-config.php casa com o prefixo real das tabelas
- Mantenha pelo menos dois usuários administradores ativos, para nunca ficar sem acesso ao painel
- Faca backup do banco antes de instalar plugins de papeis, associacao ou restricao de acesso
Causa
- Prefixo de tabela do wp-config.php diferente do prefixo real do banco após migração, fazendo o WordPress ler capacidades vazias.
- Papel do usuário rebaixado de administrator para subscriber por um plugin de associacao ou conflito de cadastro.
- Linha wp_user_roles corrompida ou apagada na tabela wp_options, deixando o site sem definição de capacidades.
- Limite de memória PHP estourado durante o carregamento das capacidades, que ficam incompletas na sessao.
- Plugin de segurança ou de restricao de acesso removendo a capability da rota específica.
Como resolver
- Confira o prefixo da tabela: via FTP, abra o wp-config.php e veja o valor de $table_prefix. No phpMyAdmin, confirme que as tabelas do banco usam exatamente esse prefixo. Se não baterem, ajuste o wp-config.php para o prefixo real.
- Restaure o papel de administrador pelo WP-CLI: se você tem acesso SSH, promova o usuário de volta a administrador sem entrar no painel:
wp user list --role=administrator wp user set-role SEU_LOGIN administrator - Verifique a linha wp_user_roles: no phpMyAdmin, abra wp_options e procure a option_name terminando em _user_roles. Se estiver vazia ou truncada, restaure-a de um backup limpo do banco.
- Desative plugins por FTP: renomeie a pasta wp-content/plugins para plugins_off e tente acessar. Se voltar, foi um plugin de segurança ou de papeis removendo a capability; reative um a um para achar o culpado.
- Aumente a memória PHP se necessário: se o erro for intermitente, adicione define('WP_MEMORY_LIMIT', '256M'); ao wp-config.php para garantir que as capacidades carreguem por inteiro.
-- Reatribui o papel de administrador a um usuario direto no banco.
-- Troque wp_ pelo prefixo REAL das suas tabelas e USER_ID pelo id do usuario.
UPDATE wp_usermeta
SET meta_value = 'a:1:{s:13:"administrator";b:1;}'
WHERE user_id = USER_ID
AND meta_key = 'wp_capabilities';
-- Confere o nivel do usuario (admin = 10)
UPDATE wp_usermeta
SET meta_value = '10'
WHERE user_id = USER_ID
AND meta_key = 'wp_user_level';














