@greenTransistor

Следует ли разделять авторизационные данные (соль, хеш пароля) и данные учетной записи пользователя в разные таблицы MySQL?

Обычно в своих мелких проэктах я делаю отдельные таблицы, что имеет следующие преимущества:
- можно разделять доступ к этим данным и защитить соль и хеш от похищения при SQL-инъекции, так как в сценариях, отличных от входа и регистрации, доступ к ним не нужен и пользователю БД, используемому по умолчанию, можно их не давать;
- есть возможность создавать системных/вспомагательных пользователей, из-под которых нельзя авторизоваться;
- немного большее быстродействие в типичных сценариях.
Но в больших проектах, которые я видел, обычно была одна таблица, и кроме того разделение данных со связью один к одному в разные таблицы не считается хорошей практикой. Преимущества одной таблицы я вижу следующие:
- проще поддерживать согласованность данных;
- меньшая избыточность и, как следствие, меньшее занимаемое пространство.
Вряд ли есть универсальный ответ, поэтому в каких случаях лучше иметь одну таблицу, а в каких - две? Какие ещё есть преимущества и недостатки в обеих схемах БД?
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Пожалуй ни разу не видел такого варианта.
Смысла вообще не вижу в этом.

можно разделять доступ к этим данным и защитить соль и хеш от похищения при SQL-инъекции

хакер-то не догадается поискать пароль и даже не заметит что его нет во взломанных данных?)
Или инъекция не распространяется на остальные таблицы магически?)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы