php - MySQL 授予用户权限

标签 php mysql phpmyadmin

我一直在尝试创建一个新用户,但我一直收到这个错误:

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 'GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `testingUser' at line 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';");

最佳答案

您不能在单个 mysql_query() 调用中发出多个查询。这是防止某些形式的 SQL 注入(inject)的安全限制。您必须在单独的 mysql_query() 调用中发出每个授权查询。

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

关于php - MySQL 授予用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146335/

相关文章:

php数组mysql查询

PHP - 找不到类 'My\Engine\Control'

php - 使用 Laravel 的查询生成器的多个 leftJoins 产生错误的计数

php - 如何使用 PHP 更新 MYSQL PDO 中获取列的值

javascript - 为什么我的 Node 数据库查询不起作用

MySql - 创建一个表并在同一过程中从中选择

php - 在 php 中使用 or 运算符?

mysql - id 没有正确递增

php - 是否可以在 mysql 表中按日期(时间戳)为每个组选择 10 行?如何进行?

mysql - 如何有效地为大型文本和 html 字段设置 MySQL 数据库