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?

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.


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.


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.


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

Experimente o código acima.


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".


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 )

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.