Postgres предоставит привилегию SELECT & UPDATE ТОЛЬКО пользователю

Может кто-нибудь любезно сказать мне, как я могу предоставить пользователю (username: limited_user) только привилегию SELECT AND UPDATE на postgresql? Я бегу Centos.

На данный момент пользователь не может ничего выбрать. Я вошел в phpPgMyAdmin и могу только предоставить привилегию SELECT и UPDATE для каждой таблицы для пользователя, который работает, но я хотел бы применить это правило для всех таблиц во всех базах данных.

Спасибо

1 ответ

Решение

Вы можете предоставить все таблицы в схеме одновременно:

GRANT SELECT, UPDATE ON ALL TABLES IN SCHEMA public TO restricted_user;

Если есть serial колонны или другие используемые последовательности, вам также необходимо:

GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO restricted_user;

Запустите для каждой соответствующей схемы. Больше в прекрасном руководстве для GRANT , Вам также нужно это USAGE привилегия на каждую схему:

GRANT USAGE ON SCHEMA public TO restricted_user;

Если у вас есть другой пользователь, создающий больше объектов, вы, вероятно, захотите предоставить такие же привилегии для будущих объектов по умолчанию. Это где DEFAULT PRIVILEGES заходи:

ALTER DEFAULT PRIVILEGES FOR creating_user IN SCHEMA public
GRANT SELECT, UPDATE ON TABLES TO restricted_user;

ALTER DEFAULT PRIVILEGES FOR creating_user IN SCHEMA public
GRANT USAGE ON SEQUENCES TO restricted_user;
Другие вопросы по тегам