Задать вопрос
@greenTransistor

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

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

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

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

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

Похожие вопросы