Как я могу предоставить привилегию SELECT для всех последовательностей пользователю, используя одну инструкцию? Что-то вроде:
GRANT SELECT ON <ALL SEQUENCES???> TO myUser
В PostgreSQL 9.x вы можете предоставить роли для всех последовательностей в одной схеме.Синтаксис равен
GRANT SELECT ON ALL SEQUENCES IN SCHEMA schema_name TO role_name
Роль может быть либо ролью группы, либо ролью входа (имя пользователя).
Это будет очень полезно в будущем:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO your_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA schema_name TO your_user; GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA schema_name TO your_user;
Принятый ответ не работал у меня на 9.1.Нижеследующее предложение сработало:
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO user;
Для версий Postgres ниже 9.0
psql -d DBNAME -qAt -c "SELECT 'GRANT SELECT ON ' || relname || ' TO USER;' FROM pg_statio_all_sequences WHERE schemaname = 'public'" | psql -d DBNAME
Ссылка: http://gotochriswest.com/blog/2012/06/11/postgresql-granting-access-to-all-sequences/