MySQL: предоставление разрешений запрещено для CREATE - PullRequest
2 голосов
/ 18 мая 2011

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

[root@server23 redditonrails]# mysql -u redditonrails -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 431954
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use redditonrails_development;
Database changed
mysql> create table test;
ERROR 1142 (42000): CREATE command denied to user 'redditonrails'@'localhost' for table 'test'
mysql> show grants;
+------------------------------------------------------------------------------------------------+
| Grants for redditonrails@localhost                                                             |
+------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'redditonrails'@'localhost' IDENTIFIED BY PASSWORD '*******'    |
| GRANT ALL PRIVILEGES ON `redditonrails_test`.`localhost` TO 'redditonrails'@'localhost'        |
| GRANT ALL PRIVILEGES ON `redditonrails_development`.`localhost` TO 'redditonrails'@'localhost' |
| GRANT ALL PRIVILEGES ON `redditonrails`.`localhost` TO 'redditonrails'@'localhost'             |
+------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)

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

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Я не верю, что ваш синтаксис правильный. Вы указываете:

ПРЕДОСТАВЛЯЕТ ВСЕ ПРИВИЛЕГИИ НА redditonrails_development. localhost

Ожидаемый синтаксис для GRANT уровня базы данных: ON $db.$table. Исходя из этого, вы предоставляете только таблицы с именем "localhost". Изменить на:

ПРЕДОСТАВЛЯЕТ ВСЕ ПРИВИЛЕГИИ НА redditonrails_development. *

1 голос
/ 18 мая 2011

Казалось бы, у вашего пользователя redditonrails есть все привилегии на redditonrails_development. localhost

, что будет означать redditonrails_development базу данных и localhost таблицу.то, что вы хотите, это иметь там

redditonrails_development. *

Ведьма означает, что у вас есть все привилегии на всех столах (даже новые, которые вы пытаетесь создать)

или, по крайней мере, я так вижу.

...