Pracuję nad bazą danych amazon RDS postgresql, w której wiem, że wystąpił problem z publicznym schematem (być może został usunięty). Ale najwyraźniej schemat istnieje i problem nie został rozwiązany. Oto przykładowa sesja z nowo utworzoną pustą bazą danych:
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
Jakaś wskazówka? Czego powinienem szukać?
Rozwiązany. Dzięki odpowiedzi Daniela Vérité rozwiązałem następujące kwestie:
grant usage on schema public to public;
grant create on schema public to public;
Czy są to domyślne uprawnienia w schemacie publicznym?
Mam jednego użytkownika, który może uzyskać dostęp do bazy danych, więc myślę, że to i tak nie może zwiększyć ryzyka bezpieczeństwa ...
Myślę, że powinienem dokonać tej samej modyfikacji na template1 . Czy to jest poprawne? Jak mogę sprawdzić, czy uprawnienia w szablonie 1 są prawidłowe (powiedzmy, wartości domyślne)?