it-swarm-vi.com

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

Tôi đã được 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 đã không được cấp Drupal người dùng quản trị viên/ngày mật khẩu để 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?

13
Jane

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ể đề nghị 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.

10
Jorrit Schippers

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/user và 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 thư 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 phải cho Windows.

13
BetaRide

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.

Dr.

9
mpdonadio

Nếu bạn có quyền truy cập vào cơ sở dữ liệu, hãy chạy truy vấn sau

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

các chi tiết đăng nhập sẽ là:

tên người dùng = quản trị viên

mật khẩu = drupal


TÀI LIỆU THAM KHẢO TẠI ĐÂY:

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

5
Craig Wayne
$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;
}

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

2
Satya

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

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

2
baikho

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 và sau đó đă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 )

1
EddieN120