Как выдать все права на базу?

Всем привет
сделал grant all privleges on database to user, постгрес сказал что ок, но при попытке записи все равно возникает permission denied и приходится руками прописывать гранты на таблицы, схему, сиквенсы, функции.
Подскажите пожалуйста почему оно на grant all privleges on database не выдает все разрешения пользователю и как прописать все ограничения?
  • Вопрос задан
  • 533 просмотра
Решения вопроса 1
@mureevms
Тут, собственно, ответ на вопрос, почему grant all privleges делает не то, что вы от него ожидаете.

Вообще, если вы создаете первого пользователя для новой БД, его надо сделать владельцем этой БД. Выполняется от суперпользователя:
alter database DB_NAME owner to USER_NAME;

Если хотите добавить второго пользователя с полными правами, то придется перебирать все типы разрешенных оперций для всех типах объектов БД.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nsnoob
CREATE USER user_name WITH PASSWORD 'user_password';

ALTER DATABASE db_name OWNER TO user_name;

GRANT ALL PRIVILEGES ON DATABASE db_name TO user_name;

\c db_name

GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA PUBLIC TO user_name;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы