Как предотвратить изменение схемы пользователем в PostgreSQL - PullRequest
0 голосов
/ 07 февраля 2019

Как запретить пользователю выполнять изменение схемы, такое как добавление новых таблиц, удаление столбцов таблицы и т. Д., При этом позволяя пользователю выполнять операции создания, чтения, обновления и удаления?

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Согласно документации есть две возможные привилегии для схемы CREATE | USAGE, где CREATE allows new objects to be created within the schema (что вам нужно предотвращать ) и USAGE allows access to objects contained in the specified schema (что вы хотите keep ).

Так что вам нужно REVOKE CREATE ON SCHEMA ... FROM ... и GRANT USAGE ON SCHEMA ... TO ...

Но, перед этим, будьте осторожны с привилегиями, предоставленными для PUBLIC , вероятно, вам нужно отозвать все эти разрешения на PUBLIC и предоставить их нужным пользователям.

0 голосов
/ 08 февраля 2019

Лучшее решение для этого - использовать двух пользователей:

  • , которому принадлежит схема и все объекты в ней
  • , другому, которому предоставлены необходимые разрешения для объектов.(USAGE в схеме и последовательностях, SELECT, INSERT, UPDATE и DELETE в таблицах и т. Д.)

Вы можете использовать ALTER DEFAULT PRIVILEGES, чтобы получитьправа доступа для всех объектов, созданных в будущем.

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