Как спроектировать неизменяемую базу данных только для дополнений? - PullRequest
0 голосов
/ 11 апреля 2019

для проекта мне нужно реализовать базу данных, которая неизменна и допускает только новые записи. Редактирование или удаление записей должно быть невозможным в любом случае.

Я думал о базе данных, которая позволяет редактировать и удалять только для администраторов (так только для меня).Тем не менее, я не уверен, что это на 100% безопасно или возможно незаконно получить права администратора и подделать данные.Поэтому лучшим решением было бы иметь базу данных, которая не предлагает редактирование или удаление в первую очередь.

Предложения приветствуются!Спасибо

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Самый простой способ - предоставить отдельным пользователям права на INSERT/UPDATE/DELETE, но этого может быть недостаточно для некоторых бизнес-правил. Однако многие СУБД (например, SQL Server) поддерживают триггеры INSTEAD OF , которые могут незаметно обходить любые DELETE/UPDATE и обрабатывать INSERT в зависимости от ваших пользовательских критериев, реализованных в коде триггера.

Вы также можете определить обновляемое представление, имеющее триггеры INSTEAD OF для вставки только данных.

0 голосов
/ 11 апреля 2019

PostgreSQL поддерживает, начиная с 9.5, Политики безопасности строк , которые позволяют вам определять, вставлять, удалять и обновлять политики в зависимости от пользователя и / или некоторые значения полей в таблице.Вы можете найти то, что ищете там.

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