W niektórych przypadkach w PostgreSQL konieczne jest utworzenie użytkownika, który będzie miał dostęp wyłącznie do odczytu danych z wybranej bazy danych. Jest to szczególnie przydatne dla użytkowników analitycznych, audytorów lub aplikacji, które nie powinny wprowadzać zmian w bazie.
Kroki do utworzenia użytkownika tylko do odczytu
1. Zaloguj się do PostgreSQL
Najpierw połącz się z bazą danych PostgreSQL jako administrator:
psql -U postgres
2. Utwórz nowego użytkownika
Stwórz nowego użytkownika, który będzie miał ograniczone uprawnienia. Właśnie tak możesz utworzyć użytkownika tylko do odczytu w PostgreSQL.
CREATE USER read_only_user WITH PASSWORD 'secure_password';
3. Nadaj dostęp do bazy danych
Przyznaj użytkownikowi możliwość łączenia się z określoną bazą danych:
GRANT CONNECT ON DATABASE my_database TO read_only_user;
4. Przyznaj dostęp do schematu
Jeśli użytkownik ma przeglądać tabele w określonym schemacie (np. public), musisz nadać mu odpowiednie uprawnienia:
GRANT USAGE ON SCHEMA public TO read_only_user;
5. Przyznaj uprawnienia do tabel
Nadaj uprawnienia do odczytu dla wszystkich istniejących tabel w schemacie.
GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only_user;
Aby nowy użytkownik miał automatycznie dostęp do przyszłych tabel:
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO read_only_user;
6. (Opcjonalnie) Przyznaj dostęp do widoków i sekwencji
Jeśli użytkownik ma mieć dostęp do widoków i sekwencji:
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO read_only_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON SEQUENCES TO read_only_user;
Podsumowanie
Po wykonaniu tych kroków jak utworzyć użytkownika tylko do odczytu w PostgreSQL, użytkownik read_only_user
będzie miał dostęp tylko do odczytu w bazie danych my_database
. Nie będzie mógł modyfikować, usuwać ani dodawać rekordów, co zapewnia większe bezpieczeństwo i kontrolę nad danymi. W innym artykule opisano jak przebiega instalacja PostgreSQL 16 na Ubuntu