如何使用一个语句将所有序列的SELECT权限授予用户?像这样的东西:
GRANT SELECT ON <ALL SEQUENCES???> TO myUser
答案 0 :(得分:39)
在PostgreSQL 9.x中,您可以将一个架构中的所有序列的权限授予角色。 syntax是
GRANT SELECT
ON ALL SEQUENCES IN SCHEMA schema_name
TO role_name
角色可以是组角色或登录角色(用户名)。
答案 1 :(得分:18)
这将来会非常有用:
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;
答案 2 :(得分:6)
接受的答案在9.1上对我不起作用。以下句子确实有效:
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO user;
答案 3 :(得分:2)
对于低于9.0的Postgres版本
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/
答案 4 :(得分:1)
它适用于 Postgres 13
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO admin;