Додавання нового користувача безпосередньо в базу даних


13

Мені передали файли на сайт Drupal, щоб я міг створити нову тему. Однак мені не вказано дату користувача / пароль адміністратора Drupal, тому я не можу ввійти в область адміністратора. Чи є спосіб створити нового користувача безпосередньо в базі даних чи якимось іншим способом?

Відповіді:


10

Ви можете створити нового користувача, додавши рядок до таблиці користувачів. Поле пароля повинно містити хешований пароль MD5. Ви можете використовувати онлайн-генератори MD5 або, якщо ви використовуєте PHPMyAdmin, вибрати функцію MD5 поруч із текстовим полем, де ви вводите звичайний пароль. Візьміть на замітку ідентифікатор користувача (uid) новоствореного користувача. Після цього потрібно знайти роль, яка має достатню кількість дозволів у таблиці ролей. Знайдіть ідентифікатор ролі (позбавлення) та введіть uid та rid у новий рядок у таблиці users_roles.

Якщо немає ролі, яка надає адміністратору доступ, оскільки клієнт робить все з користувачем 1, вам потрібно виконати трохи брудніший трюк. Збережіть хеш-код користувача 1 десь і тимчасово додайте новий пароль для користувача 1. Потім увійдіть із користувачем 1, створіть для себе новий обліковий запис, нову роль з достатніми дозволами та додайте себе до цієї ролі. Після цього відредагуйте користувача 1 у базі даних та відновіть пароль. Я можу порекомендувати роль адміністратора, щоб змусити роль мати всі дозволи постійно.


13

Існує набагато простіший спосіб.

  1. Зайдіть у БД та змініть поле електронної адреси користувача на id 1 та встановіть його на свою електронну адресу.
  2. Перейдіть до http://mysite/userта натисніть посилання відновлення пароля.
  3. Введіть свою електронну адресу, і ви отримаєте посилання відновлення пароля.

Звичайно, це передбачає, що ваші системи розробників дозволяють друпал надсилати пошту з коробки. Це справедливо для більшості вікон Linux та OSX, але не для Windows.


1
Це дійсно простіше. Після цього ОП може створити нового користувача та повернути електронну пошту для користувача №1, як це було раніше, якщо це дійсно необхідно.
kiamlaluno

Ще простіше було б використовувати drush uliдля входу як користувач 1.
mbomb007

9

Ви також можете створювати користувачів та призначати ролі за допомогою Drush , а також змінювати паролі для існуючих користувачів.

Drush - це командний рядок оболонки та інтерфейс сценаріїв для Drupal, справжнього ножа швейцарської армії, покликаного полегшити життя тим з нас, хто проводить частину своїх робочих годин на злому в командному рядку.


1
drush help uli
Друпак

5

Якщо у вас є доступ до бази даних, запустіть наступний запит

UPDATE users 
SET name='admin', 
pass='$S$Drl0vgZ9yuU9uc4JyaTMHxMPriC7q/PsOUOx52fCrVQSTpI/Tu4x',
status=1 
WHERE uid = 1;

реквізити для входу будуть:

ім'я користувача = адміністратор

пароль = drupal


ДОВІДКА ТУТ:

https://knackforge.com/blog/sivaji/different-ways-reset-drupal-admin-password


2
$user = array();
$user['status'] = 1; //for active user
$user['mail'] = 'test@test.com';
//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;
}

Спробуйте вказаний вище код.


Дякую - нерозумне запитання: в який файл я б поставив цей код?
Джейн

2

Якщо ви випадково використовуєте друк, ви можете використовувати, drush upwd [user] --password="[newpassword]" який (повторно) встановлює пароль для користувача з вказаним іменем. ( upwdце коротка версія команди для user-password)

Приклад з drush: drush user-password someuser --password="correct horse battery staple" який встановлює вказаний пароль для імені користувача "someuser".


1

Що ви можете зробити, це зайти в базу даних, зберегти старий пароль адміністратора, скинути пароль адміністратора, а потім увійти, створити нового користувача, а потім відновити пароль адміністратора до того, яким він був до початку роботи.

Якщо у вас є доступ до друку, ви можете зробити це:

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

Це повинно зробити трюк.

( джерело )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.