PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Concessão de privilégios do PostgreSQL não visível


Uma lista de coisas que você não entendeu:

  1. ALTER DEFAULT PRIVILEGES não altera as permissões em nenhum objeto existente, no seu caso o schema.

    Você precisa conceder o CREATE privilégio no esquema:
    GRANT CREATE ON SCHEMA tn_schema TO tn_beta_migrator;
    

  2. Os ALTER DEFAULT PRIVILEGES A instrução que você executou afetará apenas as permissões nas tabelas criadas pelo usuário postgres no esquema tn_schema , mas parece que você quer tn_beta_migrator para criar tabelas.

    Você não precisa de ALTER DEFAULT PRIVILEGES em tudo, uma vez que o usuário que cria a tabela se torna o proprietário da tabela e tem todos os privilégios na tabela por padrão.

  3. Você pode visualizar os privilégios padrão com \ddp em psql .

  4. Os esquemas fazem parte de um banco de dados, portanto, você precisa se conectar ao banco de dados para ver seus esquemas.

Se você deseja que as tabelas criadas por tn_beta_migrator obter determinadas permissões por padrão, você deve definir privilégios padrão para esse usuário (e não para postgres , como você fez):
ALTER DEFAULT PRIVILEGES FOR ROLE tn_beta_migrator IN SCHEMA tn_schema GRANT ...;