Doğrudan veritabanına yeni bir kullanıcı ekleme


13

Yeni bir tema oluşturabilmem için dosyaları bir Drupal sitesine verdim. Bununla birlikte, yönetici alanında oturum açamadığım için Drupal yönetici kullanıcısı / parolası tarihi verilmedi. Doğrudan veritabanında veya başka bir şekilde yeni bir kullanıcı oluşturmanın bir yolu var mı?

Yanıtlar:


10

Kullanıcılar tablosuna bir satır ekleyerek yeni bir kullanıcı oluşturabilirsiniz. Parola alanı, MD5 karma parolasını içermelidir. Çevrimiçi MD5 jeneratörlerini kullanabilirsiniz veya PHPMyAdmin kullanıyorsanız, düz şifrenizi girdiğiniz metin kutusunun yanındaki MD5 işlevini seçin. Yeni oluşturduğunuz kullanıcının kullanıcı kimliğini (uid) not edin. Bundan sonra, rol tablosunda yeterli izinlere sahip bir rol bulmanız gerekir. Rol kimliğini (rid) bulun ve kullanıcı kimliğini girin ve users_roles tablosunda yeni bir satıra kurtulun.

Yönetici erişimi sağlayan bir rol yoksa, istemci kullanıcı 1 ile her şeyi yaptığı için biraz daha az hile yapmanız gerekir. Kullanıcı 1'in şifre karmasını bir yere kaydedin ve geçici olarak kullanıcı 1 için yeni bir şifre ekleyin. Ardından kullanıcı 1 ile giriş yapın, kendiniz için yeni bir hesap, yeterli izinlere sahip yeni bir rol oluşturun ve kendinizi bu role ekleyin. Bundan sonra, veritabanındaki kullanıcı 1'i düzenleyin ve şifreyi geri yükleyin. Bir rolü her zaman tüm izinlere sahip olmaya zorlamak için yönetici rolü önerebilirim .


13

Çok daha kolay bir yol var.

  1. DB'ye gidin ve 1 numaralı kimliği olan kullanıcının e-posta adresi alanını değiştirin ve e-posta adresinize ayarlayın.
  2. http://mysite/userŞifre kurtarma bağlantısına gidin ve tıklayın.
  3. E-posta adresinizi girin, bir şifre kurtarma bağlantısı alacaksınız.

Elbette bu, dev sistemlerinizin drupal'ın kutudan posta göndermesine izin verdiğini varsayar. Çoğu linux ve osx kutusu için bu geçerlidir, ancak Windows için geçerli değildir.


1
Bu gerçekten daha kolay. Bunu yaptıktan sonra, OP yeni bir kullanıcı oluşturabilir ve gerçekten gerekliyse # 1 kullanıcısı için e-postayı eskisi gibi ayarlayabilir.
kiamlaluno

drush uliKullanıcı 1 olarak oturum açmak için daha da kolay olurdu .
mbomb007

9

Ayrıca Drush ile kullanıcılar oluşturabilir ve roller atayabilir , mevcut kullanıcılar için parolaları değiştirebilirsiniz.

Drush, çalışma saatlerimizden bazılarını komut isteminde hack yaparak geçirenler için hayatı kolaylaştırmak üzere tasarlanmış gerçek bir İsviçre çakısı olan Drupal için bir komut satırı kabuğu ve komut dosyası arabirimidir.


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

Yukarıdaki kodu deneyin.


Teşekkürler - aptalca bir soru: hangi dosyaya bu kodu koyardım?
Jane

2

Kullanmak edersek drush kullanabilirsiniz drush upwd [user] --password="[newpassword]" Belirtilen isimde bir kullanıcı için şifre belirleyen (yeniden). ( upwdkısa komut sürümüdür user-password)

Drush örneği: drush user-password someuser --password="correct horse battery staple" "someuser" kullanıcı adı için belirtilen şifreyi ayarlar.


1

Yapabileceğiniz şey veritabanına gitmek, eski yönetici şifresini kaydetmek, yönetici şifresini sıfırlamak ve sonra oturum açmak, yeni bir kullanıcı oluşturmak ve ardından yönetici şifresini başlamadan önceki haline sıfırlamaktır.

Eğer drush'a erişiminiz varsa, bunu yapabilirsiniz:

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

daha sonra yukarıda oluşturulan MD5 karma şifresini alın ve:

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

Hile yapmalı.

( kaynak )

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.