Como corrigir o erro “PERMISSION_DENIED” no Google Sheets e Apps Script

Foto do autor
Sávio Ribeiro 📅 08/08/2026 08:00
⏱️4 minutos de leitura

O Apps Script executa scripts vinculados ao Google Docs, Sheets ou Slides usando as credenciais de quem está interagindo com o documento naquele momento. Quando você tem várias contas Google estão logadas ao mesmo tempo, no mesmo perfil do seu navegador, o Google pode entregar a interface do script (por exemplo, uma janela de diálogo ou barra lateral) associada a uma sessão diferente daquela que efetivamente tem permissão para acessar os dados, daí você recebe o erro PERMISSION_DENIED.

PERMISSION_DENIED no Google Sheets com Apps Script
Erro PERMISSION_DENIED na planilha FinSheets da Octadata.

Esse é um erro que só a Google pode resolver, não é uma falha no seu script ou planilha. Inclusive, há uma issue aberta desde 2020 que infelizmente não tem data de solução definida: issuetracker.google.com/issues/150247026

Se possível, acesse o link acima e comente um “+1”.

Como resolver o erro PERMISSION_DENIED?

Isolar a sessão do navegador

A principal e mais simples solução existente hoje, do lado do usuário, é evitar múltiplas contas logadas: faça logout das demais contas Google, use uma janela anônima ou configure um perfil separado do Chrome dedicado só à conta que precisa rodar o script ou usar determinada planilha.

Revogar e reconceder as permissões

Se o script foi autorizado em algum momento por uma identidade “errada” ou conflitante, vale limpar esse histórico:

  1. Acesse o link myaccount.google.com/linkedapps, busque o app atrelado ao projeto Apps Script que pretende usar e revogue a permissão dele.
  2. Rode o script novamente, o Google vai pedir a autorização do zero, já com a conta correta ativa.

Restringir o acesso com @OnlyCurrentDoc

Se a automação só precisa atuar sobre o documento atual (e não sobre toda a conta Google Drive do usuário), adicionar a anotação abaixo reduz bastante o escopo de permissão exigido:

/** @OnlyCurrentDoc */
function suaFuncao() {
  // código que acessa a planilha/documento
}

Um ponto importante: essa anotação vale por função, não por arquivo .gs. Então se existir qualquer função, em qualquer arquivo, acessando SpreadsheetApp, DocumentApp ou similar sem a anotação, o projeto inteiro volta a pedir o escopo amplo. Vale conferir a aba “Visão geral do projeto” no editor do Apps Script para verificar quais escopos estão realmente sendo solicitados depois de aplicar a mudança.

Leia também: Erro no Apps Script: Este app está bloqueado

Outros pontos a verificar

  • Ambiente corporativo (Google Workspace): em alguns domínios, um administrador precisa liberar/whitelistar o complemento antes que os usuários consigam autorizá-lo.
  • Erro persistente mesmo após todos os ajustes: pode indicar que a conta simplesmente não tem permissão para o serviço que o script está tentando acessar, vale confirmar isso separadamente do problema de múltiplas contas.
  • Escopos sensíveis: complementos e web apps que pedem escopos sensíveis podem exigir passar pelo processo de verificação do Google antes de funcionar sem restrições para todos os usuários.

Resumindo…

O erro PERMISSION_DENIED em cenários com múltiplas contas logadas é, na prática, um problema de identidade e escopo, não de lógica do script. Na maioria dos casos que ajudei a solucionar, o problema estava em ter mais de uma conta logada. O simples fato de utilizar com apenas uma conta logada já resolvia.

Compartilho dicas sobre análise de dados, automação e programação de maneira simples e acessível, com foco especial nas ferramentas do Google Workspace. Conecte-se comigo no LinkedIn.

PARTICIPE DO NOSSO GRUPO NO WHATSAPP!
É 100% GRÁTIS!

Tópicos da publicação

Comentários

VOCÊ PODE SE INTERESSAR 👀

✨ Gostou do assunto desse post? Aproveite para aprender mais sobre .