Postgressql и read only user.

3 марта, 2016

Надо было сделать пользователя с правами только на чтение в уже существующей базе постгреса.
Казалось бы чего сложного:
Grant usage on schema schemanane to username;
Grant select on all tables in schema schemaname to username;

А теперь давайте предположим что схем там хотя бы 10, (а то и 20+, как было), делать все ручками? Можно, но печалька. Поэтому задался вопросом автоматизации и вот что получилось:

sudo -u postgres psql -d dbname -qAt -c «SELECT DISTINCT ‘GRANT USAGE ON SCHEMA ‘ || quote_ident(schemaname) || ‘ TO username;’ FROM pg_tables» | sudo -u postgres psql -d dbname

sudo -u postgres psql -d dbname -qAt -c «SELECT DISTINCT ‘GRANT SELECT ON ‘ || ‘ ALL TABLES IN SCHEMA ‘ || quote_ident(schemaname) || ‘ TO username;’ FROM pg_tables» | sudo -u postgres psql -d dbname

Комментариев нет

Leave a comment


*