разным базам данных строго только в формате чтения (поскольку не уверен, что специалисты на другой стороне создадут пользователя только с правами на чтение)?
- может левый хост задать на write и тогда если кто-то попытается сохранить будет ошибка соединения (https://laravel.com/docs/10.x/database#read-and-write-connections) - или через подписку обсервера, на все write события смотреть коненкт и если по данному коннекту запрет на сохранение возвращать false и запись не произойдет - или через событие что слушает все запросы и как только там будет INSERT, UPDATE и т.д. а соединение только read, слать куда подальше, т.е. выбросить исключение, а может можно как с observer вернуть false и все остановится P.S. но это все теория, на практике такое не пользовался, всегда настраивали правильно права на уровне базы данных
в config/database.php можно добавить дополнительные базы данных. Чтобы сделать её readonly используй в конфиге read и write разделы https://stackoverflow.com/questions/63740903/laravel-lumen-readonly-model
можно ещё отдельного пользователя с правами чтения подстраховать
К сожалению не могу быть настолько уверенным в грамотности специалистов на другой стороне. Они не профессиональные программисты, а АСУТП-шники. У них контроль версий состоит из архивации проекта по датам.😅 Поэтому лучше подстраховаться на стороне приложения.
Я про базу. Создайте несколько пользователей. 1 на чтение второй на запись, третий полный доступ
в конце концов, можно же проверить будет, какие права у пользователя, и указать "специалистам на другой стороне" на недостаток, пусть исправляют)
Я не уверен в их компетенции :) Это промышленное производство и SCADA берет данные с датчиков, записывает их в БД и конце смены составляет отчет. На основании отчета руководство решает что добавлять, а что убирать. Это миллионы рублей за смены. Поэтому, я как Java программист изучающий прекрасный и логичный Laravel использую свой опыт и на уровне приложения ограничиваю способность что-то записать или изменить.
значит нужно сделать не через driver базы данных, а реализовать API, которое будет только считывать нужную информацию, т.е. сделать посредника между пользовательским приложением и базой данных.
Обсуждают сегодня