MySQL向用户授予权限

时间:2011-11-16 03:34:06

标签: php mysql phpmyadmin

我一直在玩创建新用户并且我一直收到此错误:

  

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在第3行的“GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON”testingUser'附近使用正确的语法

我的查询是:

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 个答案:

答案 0 :(得分:3)

您无法在一次mysql_query()来电中发出多个查询。防止某些形式的SQL注入是一种安全限制。您必须在单独的mysql_query()电话中发出每个拨款查询。

mysql_query("GRANT ...");
mysql_query("GRANT ...");
etc...