データベースに直接新しいユーザーを追加する


13

新しいテーマを作成できるように、Drupalサイトにファイルを提供しました。ただし、Drupalの管理者ユーザー/パスワードの日付が渡されていないため、管理者エリアにサインインできません。データベースに直接新しいユーザーを作成する方法や他の方法はありますか?

回答:


10

usersテーブルに行を追加して、新しいユーザーを作成できます。パスワードフィールドには、MD5ハッシュパスワードを含める必要があります。オンラインMD5ジェネレーターを使用できます。PHPMyAdminを使用している場合は、プレーンパスワードを入力するテキストボックスの横にあるMD5関数を選択します。新しく作成したユーザーのユーザーID(uid)をメモします。その後、ロールテーブルで十分な権限を持つロールを見つける必要があります。ロールID(rid)を見つけ、users_rolesテーブルの新しい行にuidとridを入力します。

クライアントがユーザー1ですべてを実行するため、管理者アクセスを許可するロールがない場合、少し汚いトリックを実行する必要があります。ユーザー1のパスワードハッシュをどこかに保存し、ユーザー1の新しいパスワードを一時的に追加します。次に、ユーザー1でログインし、自分用の新しいアカウント、十分な権限を持つ新しいロールを作成し、そのロールに自分を追加します。その後、データベース内のユーザー1を編集し、パスワードを復元します。ロールに常にすべてのアクセス許可を強制するために、adminロールを推奨できます。


13

もっと簡単な方法があります。

  1. DBに移動して、ID 1のユーザーのメールアドレスフィールドを変更し、自分のメールアドレスに設定します。
  2. http://mysite/userパスワード回復リンクに移動してクリックします。
  3. メールアドレスを入力すると、パスワード再設定リンクが表示されます。

もちろん、これはあなたの開発システムが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;
}

上記のコードを試してください。


ありがとう-愚かな質問:このファイルはどのファイルに入れますか?
ジェーン

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.