Estou trabalhando em um banco de dados postgresql Amazon RDS onde sei que houve algum problema com o esquema público (talvez tenha sido descartado). Mas aparentemente o esquema existe, e de qualquer forma o problema não foi resolvido. Aqui está uma sessão de amostra com um banco de dados vazio recém-criado:
mydb=> CREATE TABLE distributors (
mydb(> did integer,
mydb(> name varchar(40) UNIQUE
mydb(> );
ERROR: no schema has been selected to create in
mydb=> show search_path;
search_path
----------------
"$user",public
(1 row)
mydb=> create schema public;
ERROR: schema "public" already exists
Alguma dica? O que devo procurar?
Resolvido. Graças à resposta de Daniel Vérité resolvi com o seguinte:
grant usage on schema public to public;
grant create on schema public to public;
Essas são as permissões padrão no esquema público?
Eu tenho um único usuário que pode acessar o banco de dados, então acho que isso não pode aumentar os riscos de segurança ...
Acho que devo fazer a mesma modificação no template1 . Está correto? Como posso verificar se as permissões em template1 estão corretas (digamos, valores padrão)?