Utwórz nowego użytkownika tylko do odczytu w postgres

9

Chciałbym utworzyć nowego użytkownika w istniejącej postgresqlbazie danych na komputerze Ubuntu. Chcę przyznać temu użytkownikowi dostęp tylko do odczytu do wszystkich tabel.

Jak mam to zrobić? Czy muszę też utworzyć nowego użytkownika w systemie Ubuntu?

Dzięki,

Udi

Adam Matan
źródło

Odpowiedzi:

20

Odniesienie zaczerpnięte z tego artykułu!

Skrypt do tworzenia użytkownika tylko do odczytu:

CREATE ROLE Read_Only_User WITH LOGIN PASSWORD 'Test1234' 
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION VALID UNTIL 'infinity';

Przypisz uprawnienia do tego użytkownika tylko do odczytu:

GRANT CONNECT ON DATABASE YourDatabaseName TO Read_Only_User;
GRANT USAGE ON SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO Read_Only_User;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO Read_Only_User;
Anvesh
źródło
Imponujący! Nowa, istotna odpowiedź po ponad 6 latach.
Adam Matan
Warto było. Był to dla mnie najwyższy link, gdy szukałem „tworzenia użytkownika tylko do odczytu w Postgres”. Najważniejszy artykuł z odpowiednim przykładem jest zwycięstwem w mojej książce.
Audrius
3

Nie ma potrzeby tworzenia nowego użytkownika w systemie operacyjnym. Wystarczy wydać:

UTWÓRZ UŻYTKOWNIKA nowa nazwa użytkownika

w psql (lub pgadmin lub dowolnym innym narzędziu, które wolisz), a będziesz mieć nowego użytkownika. To, jaki dostęp ma ten użytkownik, zależy od konfiguracji twoich tabel. Ale domyślnie nie będzie miał uprawnień do żadnych tabel, więc musisz UDZIELIĆ tego. Jeśli masz już UDZIELONE uprawnienia do grupy publicznej, użytkownik będzie miał te uprawnienia od samego początku.

Magnus Hagander
źródło