MySQL授予权限访问拒绝

我有一个Yii2项目,它运行一些数据库。 它有一个基本的数据库连接,我保留用户认证数据,并为每个用户自动创建数据库的第二个连接点。

我必须以编程方式创建数据库; 所以,我有一个用户project ,它具有全局授权特权和project_% 。*的通配权限。 我就是做这个的:

    $queries = [
        "CREATE DATABASE ".$dbname,
        "FLUSH PRIVILEGES",
        "CREATE USER '{$dbuser}'@'localhost' IDENTIFIED BY '{$dbpass}'",
        "GRANT ALL PRIVILEGES ON {$dbname}.* TO '{$dbuser}'@'localhost'"
    ];

    foreach($queries as $q) $application->db->createCommand($q)->execute();

$dbname is 'project_'.randomString(8).

我再次检查了所有的project特权,检查了mysqluserinformation_scheme ,我有可授予的权限和授予选项,但仍然出现访问错误:

SQLSTATE [42000]:语法错误或访问冲突:1044用户'project'@'localhost'对数据库'project_sck6jdyb'的访问被拒绝正在执行的SQL是:授予project_sck6jdyb。*上的所有特权到'pu_sck6jDyB'@'localhost'。

MySQL version is 5.6.21 ,在XAMPP ,Windows下运行。 这是一个错误,还是我做错了什么?

更新: SHOW GRANTS for project@localhost;

GRANT INSERT,CREATE,DROP,RELOAD,INDEX,ALTER,SUPER,CREATE USER ON *.* TO'project'@'localhost'IDENTIFIED BY PASSWORD'* [secret]'WITH GRANT OPTION

project授予所有特权*到'项目'@'localhost'

授予project_%所有特权project_% 。*到'项目'@'localhost'WITH GRANT OPTION


要授予权限,您必须具有GRANT_OPTION权限,并且还必须拥有要授予的权限。 从您的帖子中,您拥有以下权限: INSERT, CREATE, DROP, RELOAD, INDEX, ALTER, SUPER, CREATE USER

尝试仅授予您拥有的权限。 我期望这会起作用。

链接地址: http://www.djcxy.com/p/69279.html

上一篇: MySQL grant privileges access denial

下一篇: Can't create user in MySQL 5.6