Thêm người dùng mới trực tiếp vào cơ sở dữ liệu


13

Tôi đã được cung cấp các tệp cho một trang web Drupal để tôi có thể tạo một chủ đề mới. Tuy nhiên, tôi chưa được cung cấp ngày mật khẩu / người dùng quản trị viên Drupal vì vậy tôi không thể đăng nhập vào khu vực quản trị. Có cách nào tôi có thể tạo người dùng mới trực tiếp trong cơ sở dữ liệu hoặc một số cách khác không?

Câu trả lời:


10

Bạn có thể tạo người dùng mới bằng cách thêm một hàng vào bảng người dùng. Trường mật khẩu phải chứa mật khẩu băm MD5. Bạn có thể sử dụng các trình tạo MD5 trực tuyến hoặc, nếu bạn đang sử dụng PHPMyAdmin, hãy chọn chức năng MD5 bên cạnh hộp văn bản nơi bạn nhập mật khẩu đơn giản. Lưu ý id người dùng (uid) của người dùng mới tạo của bạn. Sau đó, bạn cần tìm một vai trò có đủ quyền trong bảng vai trò. Tìm id vai trò (thoát) và nhập uid và thoát khỏi một hàng mới trong bảng users_roles.

Nếu không có vai trò nào cho phép quản trị viên truy cập, vì máy khách thực hiện mọi thứ với người dùng 1, bạn cần thực hiện một thủ thuật hơi bẩn hơn. Lưu mật khẩu băm của người dùng 1 ở đâu đó và tạm thời thêm mật khẩu mới cho người dùng 1. Sau đó đăng nhập với người dùng 1, tạo một tài khoản mới cho chính bạn, một vai trò mới có đủ quyền và thêm chính bạn vào vai trò đó. Sau đó, chỉnh sửa người dùng 1 trong cơ sở dữ liệu và khôi phục mật khẩu. Tôi có thể đề xuất vai trò quản trị viên để buộc một vai trò phải có tất cả các quyền mọi lúc.


13

Có một cách dễ dàng hơn nhiều.

  1. Đi vào DB và thay đổi trường địa chỉ email của người dùng với id 1 và đặt nó vào địa chỉ email của bạn.
  2. Đi đến http://mysite/uservà nhấp vào liên kết khôi phục mật khẩu.
  3. Nhập địa chỉ email của bạn và bạn sẽ nhận được một liên kết khôi phục mật khẩu.

Tất nhiên điều này giả định rằng các hệ thống dev của bạn cho phép drupal gửi mail ra khỏi hộp. Điều này đúng với hầu hết các hộp linux và osx nhưng không đúng với Windows.


1
Điều này thực sự dễ dàng hơn. Sau khi thực hiện điều này, OP có thể tạo một người dùng mới và đặt lại email cho người dùng số 1 như trước đây, nếu điều đó thực sự cần thiết.
kiamlaluno

Thậm chí dễ dàng hơn để sử dụng drush uliđể đăng nhập với tư cách người dùng 1.
mbomb007

9

Bạn cũng có thể tạo người dùng và gán vai trò với Drush , cũng như thay đổi mật khẩu cho người dùng hiện tại.

Drush là một vỏ dòng lệnh và giao diện kịch bản cho Drupal, một con dao của Quân đội Thụy Sĩ thực sự được thiết kế để giúp cuộc sống của chúng ta dễ dàng hơn trong những giờ làm việc bị hack tại dấu nhắc lệnh.


1
drush help uli
Drupac


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;
}

Hãy thử đoạn mã trên.


Cảm ơn - câu hỏi ngớ ngẩn: trong tập tin nào tôi sẽ đặt mã này?
Jane

2

Nếu bạn tình cờ sử dụng drush, bạn có thể sử dụng drush upwd [user] --password="[newpassword]" (đặt lại) mật khẩu cho người dùng với tên được chỉ định. ( upwdlà phiên bản lệnh ngắn cho user-password)

Ví dụ từ drush: drush user-password someuser --password="correct horse battery staple" thiết lập mật khẩu được chỉ định cho tên người dùng "someuser".


1

Những gì bạn có thể làm là vào cơ sở dữ liệu, lưu mật khẩu quản trị viên cũ, đặt lại mật khẩu quản trị viên rồi đăng nhập, tạo người dùng mới và sau đó đặt lại mật khẩu quản trị viên về mật khẩu trước khi bạn bắt đầu.

Nếu bạn có quyền truy cập vào drush, bạn có thể làm điều này:

cd <drupal root directory>
php scripts/password-hash.sh 'drupal'

sau đó lấy mật khẩu băm MD5 được tạo ở trên và:

drush sql-cli
update users set name='admin', pass='pasted_big_hash_from_above' where uid=1;
quit

Điều đó sẽ làm các trick.

( nguồn )

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.