Como eu loguei com sucesso em uma conta de usuário inexistente?

3

Estou tentando configurar o ownCloud em um laboratório de teste. De alguma forma eu consegui criar um usuário 'owncloud' (o que é bom). A conta tem uma senha vazia (não sei como isso aconteceu), por isso estou tentando definir uma:

Por razões que eu não entendo (não sou um guru de banco de dados), o banco de dados está me dizendo que não há usuário atual, mesmo que eu tenha feito login usando a conta de teste 'owncloud'.

Alguma idéia de como fazer o MySQL se comportar como esperado?

EDIT: Eu estava errado sobre o usuário 'owncloud'. Ele não foi criado através da configuração do ownCloud (acho que confundi o nome do servidor ('owncloud') com o usuário ('owncloud') porque esperava que estivesse lá).

Nova pergunta: como posso logar com sucesso em uma conta de usuário inexistente?

    
por Braiam 30.12.2013 / 09:28

2 respostas

3

O seguinte resultado do CURRENT_USER()

mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| @localhost     |
+----------------+
1 row in set (0.00 sec)

diz que você está usando o banco de dados como usuário anônimo . Um banco de dados MySQL recém-instalado tem as seguintes entradas do usuário em sua tabela mysql.user:

mysql> SELECT user,host,password from mysql.user;
+------------------+-----------------+-------------------------------------------+
| user             | host            | password                                  |
+------------------+-----------------+-------------------------------------------+
| root             | localhost       | *........................................ |
| root             | xxxx            | *........................................ |
| root             | 127.0.0.1       | *........................................ |
| root             | ::1             | *........................................ |
|                  | localhost       |                                           |
|                  | xxxxx           |                                           |
| debian-sys-maint | localhost       | *........................................ |
+------------------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)

Existem algumas contas-raiz (protegidas por senha) e duas contas anônimas que permitem um logon a partir do host local (a entrada xxxxx é o nome do host da máquina).

Se houver uma entrada na tabela do usuário sem nome de usuário e senha, a seguinte regra será aplicada:

  

Se o valor do usuário estiver em branco, ele corresponderá a qualquer nome de usuário. Se o usuário   a linha da tabela que corresponde a uma conexão de entrada tem um nome de usuário em branco,   o usuário é considerado um usuário anônimo sem nome, não um   usuário com o nome que o cliente realmente especificou. Isso significa que   um nome de usuário em branco é usado para toda a verificação de acesso para o   duração da conexão (ou seja, durante o estágio 2).

     

(veja os documentos do MySQL, "6.2.4. Controle de Acesso, Estágio 1: Verificação de conexão ")

Em geral, após instalar o MySQL, você deve tomar conhecimento da seguinte parte da documentação: " 2.11.2. Protegendo as contas iniciais do MySQL ".

    
por tohuwawohu 30.12.2013 / 17:09
0

Você tem um erro no comando set password. Você precisa especificar a senha definida para quem ... A sintaxe correta é

SET PASSWORD FOR 'user-name-here'@'hostname-name-here' = PASSWORD('new-password-here');
    
por Maythux 30.12.2013 / 09:33

Tags