Добавление нового пользователя непосредственно в базу данных
Мне передали файлы на сайт Drupal, чтобы я мог создать новую тему. Однако мне не была предоставлена дата пользователя/пароля администратора Drupal, поэтому я не могу войти в административную область. Есть ли способ создать нового пользователя непосредственно в базе данных или каким-либо другим способом?
7 answers
Вы можете создать нового пользователя, добавив строку в таблицу пользователи. Поле пароля должно содержать хэшированный пароль MD5. Вы можете использовать онлайн-генераторы MD5 или, если вы используете phpMyAdmin, выберите функцию MD5 рядом с текстовым полем, в котором вы вводите свой простой пароль. Обратите внимание на идентификатор пользователя (uid) вашего вновь созданного пользователя. После этого вам нужно найти роль с достаточными разрешениями в таблице ролей. Найдите идентификатор роли (rid) и введите uid и rid в новой строке в таблица users_roles.
Если нет роли, предоставляющей доступ администратора, потому что клиент все делает с пользователем 1, вам нужно выполнить немного более грязный трюк. Сохраните где-нибудь хэш пароля пользователя 1 и временно добавьте новый пароль для пользователя 1. Затем войдите в систему с пользователем 1, создайте для себя новую учетную запись, новую роль с достаточными разрешениями и добавьте себя в эту роль. После этого отредактируйте пользователя 1 в базе данных и восстановите пароль. Я могу порекомендовать администратора роль, чтобы заставить роль иметь все разрешения в любое время.
Есть гораздо более простой способ.
- Зайдите в базу данных и измените поле адреса электронной почты пользователя с идентификатором 1 и установите его на свой адрес электронной почты.
- Перейдите к
http://mysite/user
и нажмите на ссылку для восстановления пароля. - Введите свой адрес электронной почты, и вы получите ссылку для восстановления пароля.
Конечно, это предполагает, что ваши системы разработки позволяют drupal отправлять почту из коробки. Это верно для большинства коробок linux и osx, но не для Windows.
Вы также можете создавать пользователей и назначать роли с помощью Drush, а также изменять пароли для существующих пользователей.
Drush - это оболочка командной строки и интерфейс сценариев для Drupal, настоящий швейцарский армейский нож, предназначенный для облегчения жизни тех из нас, кто проводит часть своего рабочего времени, взламывая командную строку.
Если у вас есть доступ к базе данных, выполните следующий запрос
UPDATE users
SET name='admin',
pass='$S$Drl0vgZ9yuU9uc4JyaTMHxMPriC7q/PsOUOx52fCrVQSTpI/Tu4x',
status=1
WHERE uid = 1;
Данные для входа будут следующими:
Имя пользователя = администратор
Пароль = друпал
ССЫЛКА ЗДЕСЬ:
Https://knackforge.com/blog/sivaji/different-ways-reset-drupal-admin-password
$user = array();
$user['status'] = 1; //for active user
$user['mail'] = '[email protected]';
//profile field $user['profile_field_fname'] = 'Vikrant';
$user_account = array();
if($user_uid = module_name_get_uid_by_email($user['mail'])) { //It will use for update.
$user_account = user_load(array(uid => $user_uid));
}
//save or update user information.
user_save($user_account, $user);
//Check existing record by email.
function module_name_get_uid_by_email($email){
$query = db_query("SELECT uid FROM {users} WHERE mail = '%s'",$email);
$result = db_fetch_object($query);
return $result->uid;
}
Попробуйте выполнить приведенный выше код.
Если вам посчастливилось использовать drush, вы можете использовать drush upwd [user] --password="[newpassword]"
который (повторно) устанавливает пароль для пользователя с указанным именем. (upwd
- это сокращенная версия команды для user-password
)
Пример из drush: drush user-password someuser --password="correct horse battery staple"
который устанавливает указанный пароль для имени пользователя "someuser".
Что вы могли бы сделать, так это зайти в базу данных, сохранить старый пароль администратора, сбросить пароль администратора, а затем войти в систему, создать нового пользователя, а затем сбросить пароль администратора до того, как вы начали.
Если у вас есть доступ к drush, вы можете сделать это:
cd <drupal root directory>
php scripts/password-hash.sh 'drupal'
Затем возьмите хэшированный пароль MD5, сгенерированный выше, и:
drush sql-cli
update users set name='admin', pass='pasted_big_hash_from_above' where uid=1;
quit
Это должно сработать.
( источник)