Можете ли вы контролировать версию mySQL / postgres на пользователя? - PullRequest
0 голосов
/ 29 апреля 2020

На данный момент это всего лишь гипотетический вопрос, но можете ли вы управлять версиями БД для каждого пользователя?

Допустим, я единственный технический специалист в компании, и они планируют нанять IT-ученика. Теперь сказал, что ученик также будет работать с БД и со временем будет манипулировать данными ...

Предположим, мне удалось не испортить какие-либо данные в течение многих лет, будучи очень осторожным с каждой командой, но кто сказал ученику не отправит неправильный оператор, который удаляет, например, несколько строк слишком много?

В настоящее время единственным вариантом будет восстановление резервной копии БД, срок которой не превышает неделю.

Существует ли какое-либо программное обеспечение или дополнение, которое будет хранить резервную копию каждой измененной строки? В идеале для каждого пользователя, чтобы вы могли создать учетную запись для ученика, который контролируется версией, в то время как изменения, поступающие из внешнего интерфейса, не будут, например, контролироваться версией?

1 Ответ

1 голос
/ 29 апреля 2020

Вы можете попробовать связать что-то подобное самостоятельно с помощью триггеров и исторических таблиц, но это сложно и может снизить производительность. Есть также некоторые проблемы, которые почти невозможно решить: если ученик вставляет строку, а другому пользователю - строку, которая зависит от первой строки посредством внешнего ключа, как вы можете отменить изменения для пользователя?

In мое мнение (и этот вопрос основан на мнении), ваш лучший вариант -

  • реализовать конвейер развертывания (разработка - тестирование - производство)

  • сводите ручное вмешательство в базу данных к абсолютному минимуму (что также улучшит ваш сон, поскольку никто не совершенен)

  • представляет решение для автоматического резервного копирования базы данных и архивации WAL с простым и проверенный вариант восстановления на момент времени

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