Автор MadBrozzeR задал вопрос в разделе Другие языки и технологии
PHP+MySQL. Оптимальный вариант управление пользователями. и получил лучший ответ
Ответ от Nikolai Chuvakhin[гуру]
Первый способ годится только для управления пользователями СЕРВЕРА БАЗ ДАННЫХ. Для управления пользователями сайтов (и вообще приложений) его НИКТО не применяет. У приложения может быть сколько угодно пользователей, но само приложение при этом, как правило, имеет только одну учетную запись в таблице mysql.user. Логика очень простая -- у приложения может быть функционал, который не зависит прямо от базы данных. Соответственно, набор прав у приложения может быть иным, нежели набор прав у базы данных. Соответственно, информацию об этих правах надо хранить отдельно от прав доступа к базе данных.
Возьмите для примера WordPress -- там права на создание поста существуют отдельно от прав на его публикацию. А кроме них, есть еще права на редактирование чужих постов.. . То есть WordPress фактически устанавливает "права собственности" на отдельные записи в таблице wp_posts.
Не говоря уже о том, что на бюджетном хостинге прав на управление пользователями сервера баз данных Вам никто не даст.. .
Ваш второй способ -- это гарантия того, что Вас взломают. Хранить пароль открытым текстом -- это плохая привычка. Хранить надо по крайней мере хэш, а еще лучше -- хэш с "солью"...
Если пользователи это те которые будут регистрироваться на сайте то использовать второй способ. а про первый способ - я ничего не понял. что это такое ваще)
Только второй. Первый - это не способ, это чушь, и я не знаю сайтов, которые его используют. Потому что безопасность такого сайта будет нулевой, и даже лень объяснять, почему. На пальцах: если ключи от кабинетов хранятся в сейфе, то это еще не повод выдавать всем сотрудникам ключи от сейфа.
у второго способа есть существенный недостаток например:
сразу заметь User - это системная таблица MySQL, а у них другое предназначение.
Создатели MySQL решат сделать в таблице User новое поле и тогда у тебя перестанет работать скрипт обслуживающий регистрацию пользователей. Получиш критичискую ошибку и сответственно сбой работы всего сайта.
GRANT в этом плане безопаснее и он сразу обновляет "Грантовые" системные таблицы MySQL.
И ещё GRANT позволяет делать проверку Connet User по выданному реквизиту доступа с запретом чтения всех таблиц - вот тебе 100% защита сайта от не санкционированного доступа.
вопрос по mysql. забыл имя пользователя бд где можно посмотреть имя пользователя бд mysql локальныи на моем компе
Запусти mysql с ключом --skip-grant-tables, и в таблице mysql.user
подробнее...
Удаленное подключение к MySQL
we be w.ru/articles/414.webew
Пробелы сотри, тут все подробно рассписанно
подробнее...
Как влияет отказ от курения на организм?
Заюзай Snus. Snus.ru
Мне пачки на неделю хватает не курю уже три
подробнее...
Как узнать имя базы MySQL? Установил MySQL для того что бы установить движок сайта....
mysql -u root
По умолчанию доступ без пароля
CREATE DATABASE `my_db` ;
GRANT
подробнее...
Как полностью изменить User Agent в браузере? (любой где можно)
Тут есть два варианта решения проблемы:
Ставим плагин:
(User Agent RG)
Если
подробнее...
вопрос по php и mysql
ошибка в файле "mysql.inc" - переменная $database, а в mysql_select_db - $datbase
ошибка в
подробнее...
Что такое Mozilla? То, что это браузер я знаю)) Есть ли какой - то перевод?
Firefox («огненная лиса» ) — дословный перевод с кит. 火狐, пиньинь hǔo hú,
подробнее...
Как в mysql изменить пароль другого пользователя?
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password =
подробнее...
Помогите с MySql
Password varchar(64) NOT NULL default »
здесь ясно что-то не так. А именно мне кажется, что
подробнее...
Create command denied to user mysql
Не доступна команда создания для пользователя
подробнее...
Подключение к MySQL через C++
#include
#include
MYSQL *connection, mysql;
MYSQL_RES *result;
MYSQL_ROW
подробнее...
mysql и mysqli не могу понять кое что.
Они оба устарели.
Почитай описание функций для MySQLLite, там обязательно добавляется
подробнее...