НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
20 of 182 menu

Таблица users

Таблица users является ядром системы пользователей Drupal. В ней хранятся основные данные учётных записей: логины, пароли, email-адреса, статусы активности и метки времени важных событий (регистрация, последний вход).

Поля

Поле Тип данных Описание
uid int Уникальный идентификатор пользователя. Первичный ключ таблицы. Пользователь с uid 0 является анонимным, а с uid 1 - первым администратором сайта.
uuid varchar(128) Универсальный уникальный идентификатор (Universally Unique Identifier) для пользователя. Используется для интеграций и миграций данных.
langcode varchar(12) Код языка по умолчанию для данного пользователя.
name varchar(60) Уникальное имя пользователя (логин), используемое для входа на сайт.
pass varchar(255) Хэш пароля пользователя. Пароли хранятся в зашифрованном виде с использованием современных алгоритмов хэширования.
mail varchar(254) Электронная почта пользователя. Должна быть уникальной для каждой учётной записи.
timezone varchar(32) Часовой пояс пользователя, например Europe/Moscow.
status tinyint Статус учётной записи: 1 - активна, 0 - заблокирована. Заблокированные пользователи не могут войти в систему.
created int Метка времени (Unix timestamp) создания учётной записи.
changed int Метка времени последнего изменения данных пользователя.
access int Метка времени последнего успешного входа пользователя в систему.
login int Метка времени последней попытки входа (успешной или нет). Используется для ограничения частоты попыток входа.
init varchar(254) Email-адрес, который был указан при регистрации. Может отличаться от текущего поля mail, если пользователь его менял.
default_langcode tinyint Флаг, указывающий, является ли langcode языком по умолчанию (1) или был установлен пользователем (0).

Как это работает

При регистрации нового пользователя в таблицу users добавляется запись. Поле name (логин) и mail (email) должны быть уникальными. Пароль в открытом виде никогда не сохраняется, вместо него хранится его хэш в поле pass.

При входе пользователя система находит запись по логину (name), проверяет статус (status) и сверяет хэш введённого пароля с хэшем в поле pass. После успешной аутентификации обновляются поля access и login.

Важно понимать, что таблица users хранит только базовые данные. Дополнительные поля (например, имя, фамилия, телефон), добавляемые через административный интерфейс, хранятся в других таблицах, связанных по uid, например в users_field_data.

Поле status позволяет администраторам блокировать учётные записи без их удаления. Заблокированный пользователь не сможет войти в систему, но все связанные с ним данные (например, комментарии, материалы) останутся нетронутыми.

Пример SQL-запроса

Выбрать логин, email и дату последнего входа для активных пользователей, зарегистрированных за последний месяц, можно следующим запросом:

SELECT uid, name, mail, FROM_UNIXTIME(access) as last_access FROM users WHERE status = 1 AND created > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 MONTH)) ORDER BY access DESC;

Смотрите также

  • таблицу users_field_data,
    которая хранит дополнительные данные пользователя
  • таблицу user__roles,
    которая связывает пользователей с их ролями
  • таблицу sessions,
    которая хранит данные активных пользовательских сессий
  • таблицу node,
    которая хранит материалы, созданные пользователями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить