Поделиться последовательностью от 2 пользователей в Postgres - PullRequest
0 голосов
/ 01 апреля 2020

На сервере базы данных Postgres 9.x или Postgres 10.x можно ли использовать одну и ту же последовательность для 2 пользователей?

Например, в одной базе данных dbTest есть 2 схемы

  1. пользователь A является схемой владельца схемы A с последовательностью A
  2. пользователь B является схемой владельца схемы B

Может ли пользователь B использовать последовательность sequenceA? Какие разрешения должны быть предоставлены?

После решения возникает ситуация:

userA: select nextval('sequenceA');
userB: select nextval('schemaA.sequenceA');

Если я также хочу для пользователя B: выберите nextval ('sequenceA');

Есть ли решение?

1 Ответ

2 голосов
/ 01 апреля 2020

Использование "schema" и "db" в описании немного сложно, но вышеприведенное работает только внутри одной базы данных.


Следующее будет работать только для схем (в той же базе данных).

Как указано в руководстве , вам необходимо предоставить привилегию USAGE для последовательности :

grant usage on sequence schema_a.sequencea to userb;

Если вы хотите разрешить userb обновить текущее значение (через setval()), вам также необходимо предоставить привилегию update.

...