Цитата(GrafF812 @ 9.8.2010, 17:32 ) | | да, меня конкретно интересуют привилегии пользователей БД. Ну например когда пользователь находится на главной странице сайта и просматривает новости, то он просмотрев например 10 новостей, хочет просмотреть еще 20 и т.д, он нажимает на ссылку которая показывает еще 10 новостей. Естественно это сделано с использованием запроса SELECT...... Поскольку в начале скрипта указывается подключение к бд, где указывается имя пользователя, то для этого пользователя можно запретить возможность удаления таблиц |
вот-вот, я и говорю: путаете.
традиционно пользователь к БД существует всего один - администратор сайта. при коннекте к БД, в не зависимости от того сколько пользователей читает сейчас форум, соединение устанавливается именно для пользователя-администратора. то есть грубо говоря, ты сейчас читаешь форум, в котором данные из БД были извлечены из-под учётной записи администратора сайта. при этом, никакой связи между пользователем БД и зарегестрированным аккаунтом на этом форуме - нет. мы все (80000 пользователей - аккаунтов) сидим под одним пользователем БД. а значит нет никаких различий в правах использования БД
почему же мы (рядовые участники) не имеем возможности удалять или как-то иначе корректировать БД? да потому что мы не работаем с БД напрямую. мы все общаемся с ней через вэб-интерфейс, который называется "сайт". интерфейс написан на языке php. вот именно php и решает кому какие права предоставлять. когда ты авторизуешься, то из БД извлекаются данные твоего аккаунта, где записано в какие разделы ты можешь ходить, а в какие нет. в итоге, чтобы удалить строку из таблицы в БД нужно нажать на нарисованную кнопку на сайте. но php на основании твоего аккаунта принимает решение: показать тебе кнопку или нет, совершить ли действие по удалению или нет
поэтому вопрос о пользователе БД лишён смысла. разработчик сайта пишет сам, какие запросы может выполнить пользователь на сайте. также вводит систему распределения прав доступа. и уж точно не даёт никому шнырять в phpmyadmin. остаётся только защитить формируемые запросы от sql-инъекции, что делается исключительно с помощью одной функции mysql_real_escape_string(). заметь, пользователь не пишет сам запрос, он всего лишь вводит данные в поля и нажимает кнопки, вот эти данные и необходимо пропускать через эту функцию. |