Adicionando um novo usuário diretamente no banco de dados

13

Recebi os arquivos em um site Drupal para que eu possa criar um novo tema. No entanto, não recebi a data de usuário / senha de administrador do Drupal, portanto não consigo entrar na área de administrador. Existe uma maneira de criar um novo usuário diretamente no banco de dados ou de alguma outra maneira?

Jane
fonte

Respostas:

10

Você pode criar um novo usuário adicionando uma linha à tabela de usuários. O campo da senha deve conter uma senha com hash MD5. Você pode usar geradores MD5 on-line ou, se estiver usando o PHPMyAdmin, selecione a função MD5 ao lado da caixa de texto onde você digita sua senha simples. Anote a identificação do usuário (uid) do seu usuário recém-criado. Depois disso, você precisa encontrar uma função que tenha permissões suficientes na tabela de funções. Localize o ID da função (rid) e insira o uid e rid em uma nova linha na tabela users_roles.

Se não houver uma função que dê acesso ao administrador, porque o cliente faz tudo com o usuário 1, é necessário executar um truque um pouco mais sujo. Salve o hash da senha do usuário 1 em algum lugar e adicione temporariamente uma nova senha para o usuário 1. Em seguida, efetue login com o usuário 1, crie uma nova conta, uma nova função com permissões suficientes e adicione-se a essa função. Depois disso, edite o usuário 1 no banco de dados e restaure a senha. Posso recomendar a função de administrador para forçar uma função a ter todas as permissões o tempo todo.

Jorrit Schippers
fonte
13

Existe uma maneira muito mais fácil.

  1. Vá para o banco de dados e altere o campo de endereço de email do usuário com o ID 1 e defina-o como seu endereço de email.
  2. Vá para http://mysite/usere clique no link de recuperação de senha.
  3. Digite seu endereço de e-mail e você obterá um link de recuperação de senha.

É claro que isso pressupõe que seus sistemas de desenvolvimento permitem que o drupal envie e-mails imediatamente. Isso é verdade para a maioria das caixas Linux e OSX, mas não para o Windows.

BetaRide
fonte
1
Isto é realmente mais fácil. Feito isso, o OP pode criar um novo usuário e atrasar o email para o usuário nº 1 como era antes, se for realmente necessário.
kiamlaluno
Ainda mais fácil seria usar drush ulio login como usuário 1.
mbomb007
9

Você também pode criar usuários e atribuir funções com o Drush , além de alterar senhas para usuários existentes.

Drush é um shell de linha de comando e uma interface de script para o Drupal, um verdadeiro canivete suíço projetado para facilitar a vida daqueles que passam algumas de nossas horas de trabalho cortando o prompt de comando.

mpdonadio
fonte
1
drush help uli
Drupac
5

Se você tiver acesso ao banco de dados, execute a seguinte consulta

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

os detalhes de login serão:

nome de usuário = admin

password = drupal


REFERENCIADO AQUI:

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

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

Experimente o código acima.

Satya
fonte
Obrigado - pergunta boba: em qual arquivo eu colocaria esse código?
Jane
2

Se você usar drush, poderá usar drush upwd [user] --password="[newpassword]" qual (re) define a senha do usuário com o nome especificado. ( upwdé a versão curta do comando user-password)

Exemplo de drush: drush user-password someuser --password="correct horse battery staple" que define a senha especificada para o nome de usuário "someuser".

Baikho
fonte
1

O que você pode fazer é acessar o banco de dados, salvar a senha de administrador antiga, redefinir a senha de administrador e efetuar login, criar um novo usuário e redefinir a senha de administrador para o que era antes de iniciar.

Se você tiver acesso ao drush, poderá fazer o seguinte:

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

pegue a senha com hash MD5 gerada acima e:

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

Isso deve fazer o truque.

( fonte )

EddieN120
fonte