데이터베이스에서 직접 새 사용자 추가


13

Drupal 사이트에 파일을 제공하여 새 테마를 만들 수 있습니다. 그러나 Drupal 관리 사용자 / 암호 날짜가 제공되지 않아 관리 영역에 로그인 할 수 없습니다. 데이터베이스 나 다른 방법으로 새 ​​사용자를 직접 만들 수있는 방법이 있습니까?

답변:


10

users 테이블에 행을 추가하여 새 사용자를 만들 수 있습니다. 비밀번호 필드는 MD5 해시 비밀번호를 포함해야합니다. 온라인 MD5 생성기를 사용하거나 PHPMyAdmin을 사용하는 경우 일반 암호를 입력하는 텍스트 상자 옆의 MD5 기능을 선택하십시오. 새로 작성된 사용자의 사용자 ID (uid)를 기록하십시오. 그런 다음 역할 테이블에서 충분한 권한이있는 역할을 찾아야합니다. 역할 ID (rid)를 찾고 uid를 입력하고 users_roles 테이블의 새 행에서 제거하십시오.

클라이언트가 사용자 1로 모든 작업을 수행하므로 관리자 액세스 권한을 부여하는 역할이없는 경우 약간 더 복잡한 트릭을 수행해야합니다. 사용자 1의 비밀번호 해시를 어딘가에 저장하고 사용자 1의 새 비밀번호를 임시로 추가하십시오. 그런 다음 사용자 1로 로그인하여 자신에 대한 새 계정, 충분한 권한이있는 새 역할을 작성하고 해당 역할에 자신을 추가하십시오. 그런 다음 데이터베이스에서 사용자 1을 편집하고 비밀번호를 복원하십시오. 역할이 항상 모든 권한을 갖도록 관리자 역할 을 추천 할 수 있습니다 .


13

훨씬 쉬운 방법이 있습니다.

  1. DB로 이동하여 ID가 ​​1 인 사용자의 이메일 주소 필드를 변경하고이를 이메일 주소로 설정하십시오.
  2. http://mysite/user암호 복구 링크로 이동하여 클릭하십시오.
  3. 이메일 주소를 입력하면 비밀번호 복구 링크가 나타납니다.

물론 이것은 dev 시스템이 drupal이 메일을 즉시 보낼 수 있다고 가정합니다. 이것은 대부분의 Linux 및 osx 박스에 해당하지만 Windows에는 해당되지 않습니다.


1
정말 쉽습니다. 이 작업이 완료되면 OP는 새 사용자를 생성하고 실제로 필요한 경우 사용자 # 1의 이메일을 이전과 같이 다시 설정할 수 있습니다.
kiamlaluno

더 쉬운 방법은 drush uli사용자 1로 로그인하는 것입니다.
mbomb007

9

Drush를 사용하여 사용자를 생성하고 역할을 할당 하고 기존 사용자의 비밀번호를 변경할 수도 있습니다.

Drush는 Drupal의 명령 줄 셸이자 스크립팅 인터페이스로, 근무 시간 중 일부를 명령 프롬프트에서 해킹하는 데 도움이되는 스위스 군용 칼인 Drupal의 스크립팅 인터페이스입니다.


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

위의 코드를 사용해보십시오.


감사합니다-바보 같은 질문 :이 파일을 어떤 파일에 넣을까요?
Jane

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.