web-dev-qa-db-fra.com

Ajout d'un nouvel utilisateur directement dans la base de données

J'ai reçu les fichiers vers un site Drupal afin que je puisse créer un nouveau thème. Cependant, je n'ai pas reçu l'utilisateur administrateur Drupal/date de mot de passe pour que je ne puisse pas me connecter à la zone d'administration. Est-il possible de créer un nouvel utilisateur directement dans la base de données ou d'une autre manière?

13
Jane

Vous pouvez créer un nouvel utilisateur en ajoutant une ligne à la table des utilisateurs. Le champ du mot de passe doit contenir un mot de passe haché MD5. Vous pouvez utiliser des générateurs MD5 en ligne ou, si vous utilisez PHPMyAdmin, sélectionnez la fonction MD5 à côté de la zone de texte où vous entrez votre mot de passe simple. Prenez note de l'ID utilisateur (uid) de votre nouvel utilisateur. Après cela, vous devez rechercher un rôle disposant des autorisations suffisantes dans la table des rôles. Recherchez l'ID de rôle (débarrasser) et entrez l'uid et débarrassez-vous sur une nouvelle ligne dans la table users_roles.

S'il n'y a aucun rôle qui donne un accès administrateur, parce que le client fait tout avec l'utilisateur 1, vous devez effectuer une astuce légèrement plus sale. Enregistrez le hachage du mot de passe de l'utilisateur 1 quelque part et ajoutez temporairement un nouveau mot de passe pour l'utilisateur 1. Connectez-vous ensuite avec l'utilisateur 1, créez un nouveau compte pour vous-même, un nouveau rôle avec des autorisations suffisantes et ajoutez-vous à ce rôle. Après cela, modifiez l'utilisateur 1 dans la base de données et restaurez le mot de passe. Je peux recommander rôle administrateur pour forcer un rôle à avoir toutes les autorisations à tout moment.

10
Jorrit Schippers

Il existe un moyen beaucoup plus simple.

  1. Allez dans la base de données et modifiez le champ d'adresse e-mail de l'utilisateur avec l'ID 1 et définissez-le sur votre adresse e-mail.
  2. Aller à http://mysite/user et cliquez sur le lien de récupération du mot de passe.
  3. Entrez votre adresse e-mail et vous obtiendrez un lien de récupération de mot de passe.

Bien sûr, cela suppose que vos systèmes de développement permettent à drupal d'envoyer des e-mails hors de la boîte. Cela est vrai pour la plupart des boîtes Linux et OSX mais pas pour Windows.

13
BetaRide

Vous pouvez également créer des utilisateurs et attribuer des rôles avec Drush , ainsi que modifier les mots de passe des utilisateurs existants.

Drush est un shell en ligne de commande et une interface de script pour Drupal, un véritable couteau suisse conçu pour rendre la vie plus facile à ceux d'entre nous qui passent une partie de nos heures de travail à pirater l'invite de commande.

9
mpdonadio

Si vous avez accès à la base de données, exécutez la requête suivante

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

les informations de connexion seront:

nom d'utilisateur = admin

mot de passe = drupal


RÉFÉRENCÉ ICI:

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

Essayez le code ci-dessus.

2
Satya

S'il vous arrive d'utiliser drush vous pouvez utiliser drush upwd [user] --password="[newpassword]" qui (re) définit le mot de passe de l'utilisateur avec le nom spécifié. (upwd est la version de commande courte pour user-password)

Exemple de drush: drush user-password someuser --password="correct horse battery staple" qui définit le mot de passe spécifié pour le nom d'utilisateur "someuser".

2
baikho

Ce que vous pourriez faire, c'est accéder à la base de données, enregistrer l'ancien mot de passe administrateur, réinitialiser le mot de passe administrateur, puis vous connecter, créer un nouvel utilisateur, puis réinitialiser le mot de passe administrateur à ce qu'il était avant de commencer.

Si vous avez accès à drush, vous pouvez le faire:

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

puis prenez le mot de passe haché MD5 généré ci-dessus, et:

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

Cela devrait faire l'affaire.

( source )

1
EddieN120