Створіть нового користувача, доступного лише для читання, у postgres


9

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

Як це зробити? Чи потрібно мені також створити нового користувача на Ubuntu?

Дякую,

Уді

Відповіді:


20

Довідка взята з цієї статті!

Сценарій для створення користувача лише для читання:

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;

Вражає! Нова відповідна відповідь через понад 6 років.
Адам Матан

Варто того. Це було для мене головним посиланням, коли я шукав "створення користувача лише для читання в Postgres". Найголовніша стаття, що має відповідний приклад, - це виграш у моїй книзі.
Адріус

3

Не потрібно створювати нового користувача в операційній системі. Просто видайте:

СТВОРИТИ КОРИСТУВАЧ новекористуване ім'я

в psql (або pgadmin, або будь-який інструмент, який ви віддаєте перевагу), і у вас з'явиться новий користувач. Який доступ має цей користувач, залежить від того, для чого створені ваші таблиці. Але за замовчуванням, він не матиме дозволів на жодних таблицях, тому вам доведеться це НАДАННЯ. Якщо ви вже надали дозволи для публічної групи, користувач матиме дозволи дозволу з самого початку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.