Привилегия GRANT SELECT для ВСЕХ последовательностей одним оператором - PullRequest
18 голосов
/ 12 сентября 2011

Как я могу предоставить привилегию SELECT для всех последовательностей пользователю, используя одну инструкцию? Что-то вроде:

GRANT SELECT ON <ALL SEQUENCES???> TO myUser

Ответы [ 4 ]

40 голосов
/ 12 сентября 2011

В PostgreSQL 9.x вы можете предоставить роли для всех последовательностей в одной схеме.Синтаксис равен

GRANT SELECT
ON ALL SEQUENCES IN SCHEMA schema_name
    TO role_name

Роль может быть либо ролью группы, либо ролью входа (имя пользователя).

18 голосов
/ 03 июня 2016

Это будет очень полезно в будущем:

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;
6 голосов
/ 29 сентября 2013

Принятый ответ не работал у меня на 9.1.Нижеследующее предложение сработало:

GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO user;
2 голосов
/ 05 октября 2012

Для версий 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...