Как я могу успешно войти под несуществующей учетной записью пользователя?

Я пытаюсь настроить ownCloud в тестовой лаборатории. Мне как-то удалось создать пользователя owncloud (что нормально). У учетной записи есть пустой пароль (я не уверен, как это произошло), поэтому я пытаюсь установить его:

MySQL and 'No Current User' after logging in as a user

По причинам, которые я не Я не понимаю (я не гуру базы данных), база данных говорит мне, что текущего пользователя нет, хотя я вошел в систему с помощью тестовой учетной записи owncloud.

Есть идеи, как заставить MySQL вести себя так, как ожидалось?

РЕДАКТИРОВАТЬ: я был неправ в отношении пользователя «owncloud». Он не был создан, хотя установка ownCloud (я думаю, что я перепутал имя сервера ('owncloud') с пользователем ('owncloud'), потому что я ожидал, что он там будет).

Новый вопрос: как в мире я могу успешно войти под несуществующей учетной записью пользователя?

3
задан 31 December 2013 в 20:09

2 ответа

Следующий результат CURRENT_USER()

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

говорит, что вы в настоящее время используете базу данных в качестве анонимного пользователя . Недавно установленная база данных MySQL содержит следующие записи пользователя в своей таблице 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)

Существуют некоторые корневые учетные записи (защищенные паролем) и две анонимные учетные записи, разрешающие вход в систему с localhost (запись xxxxx имя хоста машины).

Если в таблице пользователей есть запись без имени пользователя и пароля, применяется следующее правило:

Если значение пользователя пустое, оно соответствует любому имени пользователя. Если строка пользовательской таблицы, которая соответствует входящему соединению, имеет пустое имя пользователя, пользователь считается анонимным пользователем без имени, а не пользователем с именем, которое фактически указал клиент. Это означает, что пустое имя пользователя используется для всей дальнейшей проверки доступа на время соединения (то есть на этапе 2).

(см. документы MySQL, «6.2.4. Контроль доступа, этап 1: проверка соединения» )

В общем, после установки MySQL следует обратить внимание следующей части документации: « 2.11.2. Защита начальных учетных записей MySQL ».

0
ответ дан 31 December 2013 в 20:09

У вас ошибка в команде установки пароля. Вы должны указать установленный пароль для которого .. Правильный синтаксис:

SET PASSWORD FOR 'user-name-here'@'hostname-name-here' = PASSWORD('new-password-here');
0
ответ дан 31 December 2013 в 20:09

Другие вопросы по тегам:

Похожие вопросы: