Sto lavorando su un database postgresql di Amazon RDS in cui so che ci sono stati dei problemi con lo schema pubblico (forse è stato eliminato). Ma a quanto pare lo schema esiste e comunque il problema non viene risolto. Ecco una sessione di esempio con un database vuoto appena creato:
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
Qualche suggerimento? Cosa dovrei cercare?
Risolto. Grazie alla risposta di Daniel Vérité ho risolto quanto segue:
grant usage on schema public to public;
grant create on schema public to public;
Sono queste le autorizzazioni predefinite sullo schema pubblico?
Ho un singolo utente che può accedere al database, quindi penso che questo non possa aumentare i rischi per la sicurezza ...
Penso che dovrei apportare la stessa modifica su template1 . È corretto? Come posso verificare se le autorizzazioni in template1 sono corrette (diciamo, valori predefiniti)?