SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.09.2009 13:12:33

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Не работает GRANT :(

Уважаемые, может кто в курсе что не так.. Не могу привязать пользователя к базе, чё уже тока не пробовал sad

Пишу: GRANT ALL ON `users`.`qq` TO 'qq' IDENTIFIED BY '11'
Получаю: #1410 - You are not allowed to create a user with GRANT

Делаю рутом: grant grant option on *.* to 'имя_юзера'
Лезу в таблицу прав, в столбце Grant_priv стоит Y.

А проблема остаётся.. Баг ли? Сервер 5.0.45, подскажите плз, мож что-то не так делаю.

ЗІ Юзер qq изначально отсутствует.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 03.09.2009 13:15:43

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Не работает GRANT :(

Правильно ли указан хост для юзера? Попробуйте SHOW GRANT под требуемым юзером посмотреть.

Неактивен

 

#3 03.09.2009 13:17:15

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Не работает GRANT :(

Хост вообще не указываю нигде... Я так понимаю, проблема ч том, что "create a user with GRANT" и "Юзер qq изначально отсутствует", ща проверю своё предположение smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#4 03.09.2009 13:20:09

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Не работает GRANT :(

Вы, возможно, даете права юзеру qq@'%', а подключаетесь юзером qq@localhost

Неактивен

 

#5 03.09.2009 13:21:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не работает GRANT :(

#1410 - You are not allowed to create a user with GRANT

SQL_MODE стоит в NO_AUTO_CREATE_USER, полагаю?

Неактивен

 

#6 03.09.2009 13:52:58

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Не работает GRANT :(

rgbeast написал:

Вы, возможно, даете права юзеру qq@'%', а подключаетесь юзером qq@localhost

Эммм... а разве localhost не входит в %? smile Я не указываю хост для юзера, значит берётся %, а с локального хоста эти права обычно доступны.

paulus написал:

SQL_MODE стоит в NO_AUTO_CREATE_USER, полагаю?

SQL_MODE пуст.

Результат SHOW GRANTS под юзером route, который должен создать юзера qq:
GRANT USAGE ON *.* TO 'route'@'%' IDENTIFIED BY PASSWORD '*E6CC90B878B948C35E92B003C792C46C58C4AF40' WITH GRANT OPTION
GRANT ALL PRIVILEGES ON `route`.* TO 'route'@'%'
GRANT ALL PRIVILEGES ON `users`.* TO 'route'@'%' WITH GRANT OPTION

Это в панике уже была куча прав добавлена.

Попытка создать юзера, ответ: #1227 - Access denied; you need the CREATE USER privilege for this operation
Пытаюсь добавить привелегию создания юзера: GRANT CREATE USER TO 'route'
Ответ: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USER TO 'route'', т.е. сервер такой привилегии вообще не знает :\

ЗЫ Поменял USAGE на ALL PRIVILEGES и проблема прав исчезла. Получается, проблема была в том, что запрос привелегий юзера qq выполнялся при использовании базы `route`, в которой небыло привелегии GRANT. Как-то не логично, ведь юзера qq я привязывал к базе `users`, в которой есть привелегия GRANT, по идее должно быть всё равно в какой базе выполняется запрос...

В таком случае меня только интересует пример запроса создания юзера, почему сервер не знает CREATE USER?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#7 03.09.2009 14:48:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не работает GRANT :(

Знает, только Вы синтаксис соблюдайте полностью.

mysql> grant create user on *.* to username@hostname identified by 'password';
Query OK, 0 rows affected (0.00 sec)

Неактивен

 

#8 03.09.2009 15:14:11

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Не работает GRANT :(

Вот так вот, оказывается...
И опять же, "on *.*" привязывает привилегию к конкретной базе :\ Как-то не логично это придумали, имхо.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#9 03.09.2009 15:38:58

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не работает GRANT :(

«Конкретная» база — это любая? А «не конкретная» — это какая тогда? smile

Неактивен

 

#10 03.09.2009 16:08:32

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Не работает GRANT :(

Не-не, я имею ввиду, что к примеру привилегия создания юзера разрешена в базе X, юзера нужно создать с доступом к базе X, а запрос выполняется в базе Y. Если в базе Y нет привилегии создания юзера, то мы не сможем его создать для базы X. Вот это для меня немного не логично smile По идее, сначала юзер создаётся "в корне", а уже потом получает доступ к базам. А тут получается, если запрос не из корня, то мол покажите права на создание не из корня, хотя право создания в корне имеется smile

ЗЫ А вообще, сабж решён - это главное))


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#11 03.09.2009 16:42:58

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не работает GRANT :(

Это не Oracle, пользователи тут глобальные, а не per-base.

Неактивен

 

#12 03.09.2009 16:49:07

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Не работает GRANT :(

Правильно, но чтобы создать юзера, находясь в базе, нужно иметь права создания юзера именно в этой базе, вот где не логично smile Юзер глобальный, а без прав базы шиш тебе)))


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#13 03.09.2009 17:39:42

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не работает GRANT :(

В MySQL нет понятия «права создания юзера в этой базе». Есть право «CREATE USER», которое
является глобальным. Оно или есть у текущего пользователя, или нет. Безотносительно баз.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson