GRANT SELECT для ВСЕХ последовательностей с использованием одного оператора
Как я могу предоставить привилегию SELECT для всех последовательностей пользователю, используя один оператор? Somthing like:
GRANT SELECT ON <ALL SEQUENCES???> TO myUser
Ответ 1
В PostgreSQL 9.x вы можете предоставить разрешения для всех последовательностей в одной схеме для роли. синтаксис
GRANT SELECT
ON ALL SEQUENCES IN SCHEMA schema_name
TO role_name
Роль может быть либо ролью группы, либо ролью входа (имя пользователя).
Ответ 2
Это будет очень полезно в будущем:
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;
Ответ 3
Принятый ответ не работал на меня 9.1. Предложение ниже:
ПРЕДОСТАВЛЯЙТЕ ВСЕ НА ВСЕХ ПОСЛЕДСТВИЯХ В SCHEMA public TO пользователю;
Ответ 4
Для версий 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