Quando crio um banco de dados no PostgreSQL sem especificar explicitamente um espaço de tabela padrão, o banco de dados é criado sem problemas (estou logado como usuário pgsys ):
postgres => criar banco de dados rich1; CRIAR BASE DE DADOS postgres => \ l + Lista de bancos de dados Nome Proprietário Codificação | Agrupamento | Tipo | Privilégios de acesso | Tamanho | Espaço de tabela | Descrição ----------- + ---------- + ---------- + ------------- + - ----------- + ------------------------------------- + ----------- + ------------ + ------------------------- ------------------- postgres | pgsys | UTF8 pt_US.UTF-8 | pt_US.UTF-8 | | 7455 kB | pg_default | banco de dados de conexão administrativa padrão rdsadmin | rdsadmin | UTF8 pt_US.UTF-8 | pt_US.UTF-8 | rdsadmin = CTc / rdsadmin | Sem acesso | pg_default | rich1 | pgsys | UTF8 pt_US.UTF-8 | pt_US.UTF-8 | | 7233 kB | pg_default | template0 | rdsadmin | UTF8 pt_US.UTF-8 | pt_US.UTF-8 | = c / rdsadmin | 7345 kB | pg_default | banco de dados vazio não modificável : rdsadmin = CTc / rdsadmin template1 | pgsys | UTF8 pt_US.UTF-8 | pt_US.UTF-8 | = c / pgsys | 7345 kB | pg_default | modelo padrão para novos bancos de dados : pgsys = CTc / pgsys (5 linhas)
Como você pode ver, o banco de dados é colocado no espaço de tabela pg_default, mas se eu especificar o espaço de tabela padrão na cláusula tablespace (também ainda logada como pgsys ), recebo um erro de permissão:
postgres => criar banco de dados rich2 tablespace pg_default; ERRO: permissão negada para o espaço de tabela pg_default
Aqui estão as permissões para esse usuário:
postgres => \ du pgsys Lista de funções Nome da função | Atributos Membro de ----------- + ------------- + ----------------- pgsys | Criar função | {rds_superuser} : Criar banco de dados
Este é um erro do PostgreSQL, mas devo mencionar que é uma instância do AWS Aurora, caso isso faça alguma diferença.
postgresql
permissions
amazon-rds
tablespaces
aurora
HuggieRich
fonte
fonte