MySQL Предоставление привилегий пользователю - PullRequest
1 голос
/ 16 ноября 2011

Я играл с созданием нового пользователя и получаю эту ошибку:

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `testingUser' в строке 3

и мой запрос:

mysql_query("

GRANT USAGE ON *.* TO '$user'@'localhost' IDENTIFIED BY '$pass';

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `$user\_database`.* TO '$user'@'localhost';

GRANT SELECT (Table_priv, Column_priv, Table_name, Db, User, Host) ON `mysql`.`tables_priv` TO '$user'@'localhost';

GRANT SELECT ON `mysql`.`host` TO '$user'@'localhost';

GRANT SELECT (Host, Create_priv, Shutdown_priv, Delete_priv, User, Process_priv, Reload_priv, Alter_priv, Super_priv, Grant_priv, Create_tmp_table_priv, Execute_priv, Repl_client_priv, Insert_priv, Repl_slave_priv, Lock_tables_priv, References_priv, Index_priv, File_priv, Drop_priv, Show_db_priv, Select_priv, Update_priv) ON `mysql`.`user` TO '$user'@'localhost';

GRANT SELECT ON `mysql`.`db` TO '$user'@'localhost';");

1 Ответ

3 голосов
/ 16 ноября 2011

Вы не можете выполнить несколько запросов за один mysql_query() вызов.Это ограничение безопасности для предотвращения некоторых форм SQL-инъекций.Вы должны будете выполнить каждый запрос на грант в отдельном вызове mysql_query().

mysql_query("GRANT ...");
mysql_query("GRANT ...");
etc...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...