繁体   English   中英

授予所有权限在 PHP [MySQL] 上不起作用

[英]Grant All Privileges doesn't work on PHP [MySQL]

我正在尝试在循环内使用 php 授予GRANT ALL PRIVILEGES 每个用户都应该拥有对其相应数据库的完全访问权限。 但由于某种原因, GRANT ALL PRIVILEGES命令返回false响应。

   $dbArray = [new OnePDO,new TwoPDO];
   $dbNames = ['ONE_PDO','TWO_PDO'];

   for ($foo = 0; $foo < count($dbNames); $foo++) {
        $dbName = $dbNames[$foo];
        $pass = $util -> generateRandomPassword();
        $userName = strtolower($dbName);
        $userName = str_replace('_', '.', $userName);
        $util -> execute("CREATE USER '$userName'@'localhost' IDENTIFIED BY '$pass'", $dbArray[$foo]);
        $util -> execute("GRANT ALL PRIVILEGES ON $dbName.* TO '$userName'@'localhost'", $dbArray[$foo]));
        $util -> execute("FLUSH PRIVILEGES", $dbArray[$foo]);
   }

尝试使用数据库时...

用户“one.pdo”@“localhost”拒绝访问数据库“ONE_PDO”

添加这个只是为了上下文......

   public function execute($query, $database) {
        $command = $database -> prepare($query);
        try {
            $command -> execute();
        } catch (Exception $e) {
            $command = false;
        }
        return $command;
    }

我通过输入GRANT ALL PRIVILEGES ON *.* TO 'boss'@'localhost' WITH GRANT OPTION; 在终端中,然后我执行了 PHP。

以前我没有使用WITH GRANT OPTION ,这就是 PHP 脚本不起作用的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM