Estou trabalhando em um banco de dados RDS postgresql da Amazon, onde sei que houve algum problema com o esquema público (talvez ele tenha sido descartado). Mas, aparentemente, o esquema existe e, de qualquer maneira, o problema não está 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 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 no modelo1 estão corretas (por exemplo, valores padrão)?