การเพิ่มผู้ใช้ใหม่โดยตรงในฐานข้อมูล


13

ฉันได้รับไฟล์ไปยังเว็บไซต์ Drupal เพื่อให้ฉันสามารถสร้างชุดรูปแบบใหม่ อย่างไรก็ตามฉันยังไม่ได้รับวันผู้ใช้ / รหัสผ่านของ Drupal ดังนั้นฉันจึงไม่สามารถลงชื่อเข้าใช้ในพื้นที่ผู้ดูแลระบบได้ มีวิธีที่ฉันสามารถสร้างผู้ใช้ใหม่โดยตรงในฐานข้อมูลหรือวิธีอื่นหรือไม่?

คำตอบ:


10

คุณสามารถสร้างผู้ใช้ใหม่โดยเพิ่มแถวลงในตารางผู้ใช้ ฟิลด์รหัสผ่านต้องมีรหัสผ่านที่แฮช MD5 คุณสามารถใช้เครื่องกำเนิด MD5 ออนไลน์หรือถ้าคุณใช้ PHPMyAdmin ให้เลือกฟังก์ชัน MD5 ถัดจากกล่องข้อความที่คุณป้อนรหัสผ่านธรรมดา จดรหัสผู้ใช้ (uid) ของผู้ใช้ที่สร้างขึ้นใหม่ หลังจากนั้นคุณต้องค้นหาบทบาทที่มีสิทธิ์เพียงพอในตารางบทบาท ค้นหา id บทบาท (กำจัด) และป้อน uid และกำจัดในแถวใหม่ในตาราง users_roles

หากไม่มีบทบาทที่ให้สิทธิ์การเข้าถึงแก่ผู้ดูแลระบบเนื่องจากไคลเอนต์ทำทุกอย่างกับผู้ใช้ 1 คุณจะต้องทำตามเคล็ดลับที่สกปรกกว่าเล็กน้อย บันทึกการแฮชรหัสผ่านของผู้ใช้ 1 ที่ใดที่หนึ่งและเพิ่มรหัสผ่านใหม่สำหรับผู้ใช้ชั่วคราว 1 จากนั้นเข้าสู่ระบบด้วยผู้ใช้ 1 สร้างบัญชีใหม่สำหรับตัวคุณเองบทบาทใหม่ที่มีสิทธิ์เพียงพอและเพิ่มตัวเองลงในบทบาทนั้น หลังจากนั้นให้แก้ไขผู้ใช้ 1 ในฐานข้อมูลและกู้คืนรหัสผ่าน ฉันสามารถแนะนำบทบาทผู้ดูแลระบบเพื่อบังคับให้บทบาทมีสิทธิ์ทั้งหมดตลอดเวลา


13

มีวิธีที่ง่ายกว่ามาก

  1. ไปที่ฐานข้อมูลและเปลี่ยนฟิลด์ที่อยู่อีเมลของผู้ใช้ด้วยรหัส 1 และตั้งเป็นที่อยู่อีเมลของคุณ
  2. ไปที่http://mysite/userและคลิกที่ลิงค์กู้คืนรหัสผ่าน
  3. ป้อนที่อยู่อีเมลของคุณและคุณจะได้รับลิงค์กู้คืนรหัสผ่าน

ของหลักสูตรนี้ถือว่าระบบ dev ของคุณอนุญาตให้ drupal ส่งอีเมลออกจากกล่อง สิ่งนี้เป็นจริงสำหรับกล่อง linux และ osx ส่วนใหญ่ แต่ไม่ใช่สำหรับ Windows


1
มันง่ายกว่านี้จริงๆ เมื่อดำเนินการเสร็จแล้ว OP สามารถสร้างผู้ใช้ใหม่และตั้งค่าอีเมลกลับไปยังผู้ใช้ # 1 เหมือนเดิมมาก่อนหากจำเป็นจริงๆ
kiamlaluno

จะง่ายยิ่งขึ้นที่จะใช้drush uliในการเข้าสู่ระบบในฐานะผู้ใช้ 1
mbomb007

9

นอกจากนี้คุณยังสามารถสร้างผู้ใช้และกำหนดบทบาทด้วยDrushรวมถึงเปลี่ยนรหัสผ่านสำหรับผู้ใช้ที่มีอยู่

Drush เป็นเชลล์บรรทัดคำสั่งและส่วนต่อสคริปต์สำหรับ Drupal ซึ่งเป็นมีดสวิสกองทัพแท้ที่ออกแบบมาเพื่อทำให้ชีวิตง่ายขึ้นสำหรับพวกเราที่ใช้เวลาทำงานบางส่วนในการแฮ็คข้อมูลที่พร้อมรับคำสั่ง


1
drush help uli
Drupac

5

หากคุณมีสิทธิ์เข้าถึงฐานข้อมูลให้เรียกใช้แบบสอบถามต่อไปนี้

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

รายละเอียดการเข้าสู่ระบบจะเป็น:

ชื่อผู้ใช้ = admin

รหัสผ่าน = 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คุณสามารถใช้drush upwd [user] --password="[newpassword]" รหัสผ่านที่กำหนดไว้สำหรับชื่อผู้ใช้ ( upwdเป็นเวอร์ชันคำสั่งสั้น ๆ สำหรับuser-password)

ตัวอย่างจาก drush: drush user-password someuser --password="correct horse battery staple" ซึ่งตั้งค่ารหัสผ่านที่ระบุสำหรับชื่อผู้ใช้ "someuser"


1

สิ่งที่คุณสามารถทำได้คือเข้าไปที่ฐานข้อมูลบันทึกรหัสผ่านผู้ดูแลระบบเก่ารีเซ็ตรหัสผ่านผู้ดูแลระบบจากนั้นเข้าสู่ระบบสร้างผู้ใช้ใหม่จากนั้นรีเซ็ตรหัสผ่านผู้ดูแลระบบกลับไปเป็นสิ่งที่เคยเป็นมา

หากคุณมีสิทธิ์เข้าถึง 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

นั่นควรทำเคล็ดลับ

(ที่มา )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.