Назад | Перейти на главную страницу

Создайте нового пользователя только для чтения в postgres

Я хочу создать нового пользователя в существующем postgresql база данных на машине Ubuntu. Я хочу предоставить этому пользователю доступ только для чтения ко всем таблицам.

Как мне это сделать? Мне тоже нужно создать нового пользователя в Ubuntu?

Спасибо,

Уди

Ссылка взята из этой статьи!

Скрипт для создания пользователя только для чтения:

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

Назначьте разрешение этому пользователю только для чтения:

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;

Нет необходимости создавать нового пользователя в операционной системе. Просто выдайте:

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ новое имя пользователя

в psql (или pgadmin, или любой другой инструмент, который вы предпочитаете), и у вас появится новый пользователь. Какой доступ у этого пользователя, зависит от того, для чего настроены ваши столы. Но по умолчанию у него не будет разрешений для каких-либо таблиц, поэтому вам придется ПРЕДОСТАВИТЬ это. Если вы уже ПРЕДОСТАВИЛИ разрешения для общедоступной группы, пользователь будет иметь эти разрешения с самого начала.