Estoy trabajando en una base de datos postgresql de Amazon RDS donde sé que hubo algún problema con el esquema público (tal vez se eliminó). Pero aparentemente el esquema existe, y de todos modos el problema no está resuelto. Aquí hay una sesión de muestra con una base de datos vacía recién creada:
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
Alguna pista? ¿Que debería buscar?
Resuelto Gracias a la respuesta de Daniel Vérité he resuelto con lo siguiente:
grant usage on schema public to public;
grant create on schema public to public;
¿Son estos los permisos predeterminados en el esquema público?
Tengo un solo usuario que puede acceder a la base de datos, así que creo que de todos modos esto no puede aumentar los riesgos de seguridad ...
Creo que debería hacer la misma modificación en template1 . ¿Es correcto? ¿Cómo puedo verificar si los permisos en template1 son correctos (por ejemplo, valores predeterminados)?