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;