Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Не получается дать пользователю полный доступ  [new]
Muxaul990
Member

Откуда: Киров
Сообщений: 25
Добрый день!
Установил MySQL в Ubuntu:
1) sudo apt update
2) sudo apt install mysql-server php7.2-mysql

Выполняю подключение к MySQL: $ mysql -u root -p . Ввожу пароль и получаю сообщение следующего содержания: доступ к базу данных запрещён.

Если использую такую команду: $ sudo mysql -u root -p - всё нормально.

Для решения вопроса, подключения к MySQL без sudo, выполнил в следующие команды:

1) create user 'user1' identified by 'password';
2) grant all privileges on <имя БД> to 'user1';

Подключение к базе без sudo выполняется, но я не могу выполнить select к базе данных, удаление таблицы и даже самой базы данных. Почему так, ведь all privileges - это полный доступ к базе данных!
6 фев 20, 15:36    [22074870]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20016
Muxaul990
я не могу выполнить select к базе данных, удаление таблицы и даже самой базы данных.
Сообщения об ошибках нам предлагается угадать?
6 фев 20, 15:38    [22074871]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Muxaul990
Member

Откуда: Киров
Сообщений: 25
Сообщение об ошибке одно, команда SELECT запрещена для пользователя.

К сообщению приложен файл. Размер - 17Kb
6 фев 20, 15:49    [22074891]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Muxaul990
Member

Откуда: Киров
Сообщений: 25
Проблему решил так:

1) grant create on gallery.* to 'user1';
2) grant alter on gallery.* to 'user1';
3) grant drop on gallery.* to 'user1';
4) grant select on gallery.* to 'user1';

т.е. дал права несколькими командами, а не одной. В итоге, всё отработало норм.

Почему-то команда grant all privileges on gallery.* to 'user1'; не отработала, интересно почему ? :)
6 фев 20, 16:10    [22074911]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20016
Muxaul990
не отработала, интересно почему ?
ну так справку надо читать...

https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_all
ALL, ALL PRIVILEGES

These privilege specifiers are shorthand for “all privileges available at a given privilege level” (except GRANT OPTION). For example, granting ALL at the global or table level grants all global privileges or all table-level privileges, respectively.
6 фев 20, 16:57    [22074960]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Muxaul990
Member

Откуда: Киров
Сообщений: 25
Akina,
это то понятно всё, справку я тоже читал кстати. Мне не понятно, что значит "at a given privilege level"?

Я зашёл в MySQL с правами root, выше привилегий просто нет. Выполнил команду создать пользователя, затем use gallery; и дал новому пользователю права ALL PRIVILEGES. Как я понял прочитанное, все привилегии к базе gallery должны быть даны новому пользователю, поскольку их даёт root, но таких привилегий нет.

Как Вы поняли прочитанное, расскажите подробнее?
7 фев 20, 09:57    [22075320]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20016
Muxaul990
Я зашёл в MySQL с правами root, выше привилегий просто нет.
Судя по всему, Вы хреново читали справку, ибо даже не понимаете, что такое уровни привилегий.
7 фев 20, 10:16    [22075334]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Muxaul990
Member

Откуда: Киров
Сообщений: 25
Добрый вечер!

Если можешь - подскажи; если нет - лучше ничего не пиши.

А вообще, по ходу ты сам ничего не знаешь, знал бы - давно подсказал что такое уровни привилегий. Вообще задачу я решил по своему, просто интересно стало - почему не отработала команда с ALL PRIVILEGES.
9 фев 20, 20:50    [22076363]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20016
Muxaul990
просто интересно стало - почему не отработала команда с ALL PRIVILEGES.

Вам, помнится сказали - уровень привилегий. Или, если уж совсем разжевать, как именно термин "уровень привилегий" (privilege level) применяется в данном месте документации - уровень объектов, к которому применяется указанная привилегия.
Сколько не давай прав на БД - от этого прав на таблицы не прибавится. Что Вы не только пронаблюдали, но и исправили, дав всё же необходимые права отдельными командами.
9 фев 20, 21:50    [22076384]     Ответить | Цитировать Сообщить модератору
 Re: Не получается дать пользователю полный доступ  [new]
Muxaul990
Member

Откуда: Киров
Сообщений: 25
Я всё понял, в команде grant all privileges on <имя БД> to 'user1'; я забыл дописать .*.

Надо было написать так с самого начала: grant all privileges on gallery.* to 'user1';.
10 фев 20, 10:10    [22076538]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить