在 PostgreSQL 中,在授予序列时,是否可以只授予 USAGE 而不是同时授予 SELECT、USAGE?

In PostgreSQL, when granting sequences, can I grant only USAGE instead of both SELECT, USAGE?

我阅读了有关在 PostgreSQL 中授予序列的答案。通常,他们会说同时授予 SELECT、USAGE。我想知道我是否可以只授予 USAGE。哪一个是授予序列的最佳实践,为什么?

Quote from the manual

SELECT 权限

For sequences, this privilege also allows the use of the currval function.

使用权限

For sequences, this privilege allows the use of the currval and nextval functions.

(强调我的)

所以答案是:如果您想允许使用 nextval(),您将必须授予 USAGE 权限。如果您授予 USAGE,则不需要 SELECT 权限。