Не нашел внятного описания про привилегии. На сайте есть загрузка фото и добавление коментов. В БД установил только привилегии select и insert. Нужно ли для пользователей устанавливать привилегии? Или это необязательная дополнительная нагрузка?
желательно. вообще логика простая. надо завести необходимое кол-во пользователей, по потребностям. и дать каждому ТОЛЬКО те привилегии которые им точно нужны будут в работе с базой. все остальное под запретом.
Для сайтов характерно что все пользователи работают под одной учетной записью БД. И админ и гость имеют равные права на уровне базы. Учетке сайта дают право изменять данные в схеме сайта и только в ней. Для десктопных приложений как правило пользователь == пользователь_БД, для них конечно разные привилегии раздают, причем через группы/роли, где это доступно. Так что давай четко определим о каких именно привилегиях идет речь.
Установил для всех пользователей(гостей) только привилегии select и insert . В статьях на эту тему пишут примерно такое,что при взломе БД,если есть все привилегии ,с ней можно делать все что угодно. Вот и хотел уточнить, нужно ли в целях увеличения безопасности БД урезать привилегии гостям,а для админки свои привилегии соответственно.
конечно можно. на большинстве моих проектов где идет только получение данных - настроено только чтение. причем еще и ограничивается по каким полям. админка - пользователь с правами на вставку/обновление. есть еще промежуточные пользовательские состояния. например только запись в определенную таблицу без возможности читать вообще что-либо. короче. когда создается информационная система надо внимательно смотреть как с ней будут работать. условно это ролями называется. дальше этим ролям распределяем на что они способны. есть два подхода - "запрещено все что не разрешено" и "разрешено все что не запрещено". думаем, решаем, настраиваем. и всегда помним что это не является защитой на 100%...
Что интересно в основном работу с бд описывают через консоль... Надо изучить и запомнить кучу команд. Есть же phpadmin.)) Если на сайте нет форм для отправки данных (коменты,регистрация и тп)-ставим только привилегию select Если есть - select и insert Если можно что-то менять то + update
речь же о трех разных пользователях? иначе смысла не имеет - третья строка понижает уровень безопасности первых двух.
ты вижу нифига не понял. еще раз -- гости и админы работают из-под одной и той же учетной записи базы. поэтому "урезать привилегии гостям" ты можешь на уровне своего приложения, но не на уровне базы. как только произошла SQL-injection все твои ограничения идут лесом. поэтому ответ: мы бы очень хотели, но не можем. прими как данность: мы не можем дать привилегии меньше чем право на запись во все таблицы сайта. то есть фактически на все объекты выбранной базы. не соединяйся от имени рута и не заводи в одной базе таблицы для разных систем -- вот разумная защита.
Наименьшей привилегии не бывает как таковой. например, системе журналирования важно записать событие и совершенно не нужно знать что лежит рядом - indert разрешаем, остальное запрещаем.