Todos os produtos
Search
Central de documentação

Hologres:Permissões de desenvolvimento

Última atualização: Jul 14, 2026

Problemas de permissão podem causar erros durante o desenvolvimento no Hologres. Esta página descreve soluções para erros comuns de permissão em instâncias do Hologres.

Como escolha o modelo de permissão adequado para o Hologres?

O Hologres oferece três modelos de permissão. Escolha um com base na forma como sua equipe utiliza os schemas.

  • Modelo de autorização padrão do PostgreSQL: Modelo nativo de permissões do PostgreSQL. Utilize-o se você já estiver familiarizado com o gerenciamento de permissões do PostgreSQL e precisar de controle refinado no nível da tabela — por exemplo, para conceder e revogar permissões individualmente por tabela e por usuário.

  • Modelo de permissão simples (SPM): Modelo no nível do banco de dados em que todos os usuários pertencem a um de três grupos (desenvolvedor, escritor ou visualizador). Cada grupo possui permissões de acesso específicas para objetos em qualquer schema dentro de um banco de dados. O SPM é recomendado quando você raramente usa schemas para isolamento ou quando os utiliza apenas como pastas para organizar tabelas.

  • Modelo de permissão no nível do schema (SLPM): Cada schema possui seus próprios grupos de usuários desenvolvedor, escritor e visualizador, garantindo isolamento no nível do schema. Adote o SLPM caso sua equipe dependa fortemente da separação de permissões por schema.

Erros de permissão

role "RAM$xxx" does not exist

O usuário RAM não foi adicionado à instância do Hologres. Conceda as permissões de desenvolvimento ao usuário, incluindo Superuser, se necessário. Consulte Conceder permissões de desenvolvimento em uma instância a um usuário RAM.

Após conceder as permissões, tente execute a operação novamente para confirme que o erro foi resolvido.

password authentication failed for user "xxx"

Este erro possui duas causas possíveis, dependendo do método de login:

Login com AccessKey:

  1. Verifique se o usuário existe na instância. Caso contrário, adicione-o. Consulte Gerenciamento de usuários.

  2. Confirme se o AccessKey ID e o AccessKey secret estão corretos e não foram desativados.

Login com conta personalizada (conta BASIC):

  1. Verifique se a conta personalizada existe na instância. Se não existir, adicione-a. Consulte Gerenciamento de usuários.

  2. Certifique-se de que a senha está correta.

permission denied for table xxxx

A conta atual não tem acesso de leitura à tabela. Resolva essa questão conforme o seu modelo de permissão:

  • Modelo de autorização padrão do PostgreSQL: Conceda SELECT na tabela, substituindo p4_UID pelo identificador do usuário RAM:

    GRANT SELECT ON TABLE tablename TO "p4_UID";
  • SPM: Adicione o usuário ao grupo de visualizadores ou a um grupo com permissões superiores. Consulte Usar o modelo de permissão simples.

Depois de aplicar a correção, execute a consulta novamente para confirme que o acesso foi restaurado.

FATAL: permission denied for database "xxx" detail: user does not have CONNECT privilege

A conta de usuário existe na instância, mas não possui permissões de desenvolvimento no banco de dados. Conceda as permissões necessárias, incluindo Superuser, se for o caso. Consulte Conceder permissões de desenvolvimento em uma instância a um usuário RAM.

Falha em call spm_enable() devido a conflitos de função

O SPM foi ativado anteriormente neste banco de dados, deixando informações residuais de funções. Execute CALL spm_enable ('t'); em vez disso. A flag 't' reutiliza as funções de sistema existentes em vez de tentar crie novas, evitando assim o conflito.

current database is NOT in simple privilege mode

O SPM não está ativado para o banco de dados. Para ative:

  1. Verifique o status atual:

    SHOW hg_experimental_enable_spm;
  2. Ative o SPM e migre os objetos existentes para o gerenciamento do SPM:

    -- Enable SPM, retaining original roles and permissions
    CALL spm_enable ('t');
    -- Transfer ownership of existing objects to the developer role
    CALL spm_migrate ();

    O parâmetro 't' preserva as funções originais do sistema e suas permissões, em vez de removê-las ao executar spm_disable. Sem esse parâmetro, uma chamada subsequente a spm_enable() falhará devido a um conflito de funções. O comando spm_enable ('t') ignora esse conflito e reutiliza as funções de sistema existentes.

must be the owner of table xxxx

O usuário atual não é o proprietário da tabela e não pode crie partições filhas nem exclua a tabela. Resolva isso conforme o seu modelo de permissão:

  • Modelo de autorização padrão do PostgreSQL: Transfira a propriedade da tabela para o usuário, substituindo p4_UID pelo identificador do usuário RAM:

    ALTER TABLE tablename OWNER TO "p4_UID";
  • SPM: Adicione o usuário ao grupo de desenvolvedores ou a um grupo com permissões superiores. Consulte Usar o modelo de permissão simples.

permission denied for table xxx ao consultar uma view entre schemas

O SLPM está ativado e não oferece suporte a views que referenciam tabelas em diferentes schemas. Verifique se você está tentando crie uma view entre schemas enquanto o SLPM está em uso.

permission denied for Schema xxx

O usuário não possui permissões no schema. Corrija essa situação conforme o seu modelo de permissão:

  • SPM ou SLPM: Adicione o usuário ao grupo apropriado:

    • Para acesso de leitura (consultas): grupo de visualizadores ou superior

    • Para acesso de escrita (criação de tabelas): grupo de desenvolvedores ou superior

  • Modelo de autorização padrão do PostgreSQL: Conceda as permissões de schema explicitamente, substituindo o espaço reservado pela conta Alibaba Cloud ou e-mail:

    -- Grant USAGE to allow querying tables in the schema
    GRANT USAGE ON SCHEMA <schema_name> TO "Alibaba Cloud account/email";
    -- Grant CREATE to allow creating tables in the schema
    GRANT CREATE ON SCHEMA <schema_name> TO "Alibaba Cloud account/email";

    Após conceder as permissões, execute a consulta original novamente para confirme o acesso.

ALTER TABLE xxx is not supported in Simple Privilege Mode

O SPM está ativado e não permite operações diretas de ALTER TABLE. Utilize uma das seguintes abordagens: