gpt4 book ai didi

mysql:带有授予选项和通配符的数据库特定用户权限委托(delegate)

转载 作者:行者123 更新时间:2023-11-29 17:15:49 30 4
gpt4 key购买 nike

我想要一个非 root mysql 用户,它可以创建另一个数据库和用户,并授予该用户对创建的数据库的访问权限。为了以 root 身份执行此操作,我首先创建了一个用户

CREATE USER asusi_admin@localhost IDENTIFIED BY '123';

然后我向该用户授予创建用户特权

GRANT CREATE USER ON *.* TO 'asusi_admin'@localhost';

然后我向该用户授予他创建的每个数据库的所有权限

GRANT ALL PRIVILEGES ON `asusi\_%`.* TO 'asusi_admin'@'localhost WITH GRANT OPTION;

现在我正在刷新权限

 FLUSH PRIVILEGES;

现在我以新创建的用户 asusi_admin 身份登录 MySQL 并创建一个新数据库

现在我正在创建一个新数据库

 CREATE DATABASE asusi_database;

现在我正在检查是否可以使用该数据库

 USE asusi_database;

我可以使用这个数据库,很好

现在我正在创建一个新用户

CREATE USER 'asusi_user'@'localhost' IDENTIFIED '123';

现在我想向创建的用户授予选择权限

GRANT select on `asusi_database`.* 'asusi_user'@'localhost'

这里我收到一个错误:'用户'asusi_admin'@'localhost'对数据库'asusi_superdb'的访问被拒绝

我是否应该以 root 身份重新登录并明确向 asusi_user 授予对此数据库的访问权限

GRANT ALL PRIVILEGES ON `asusi_database`.* TO 'asusi_admin'@'localhost WITH GRANT OPTION; 

然后以 asusi_admin 身份重新登录并再次运行命令

GRANT select on `asusi_database`.* 'asusi_user'@'localhost'

这次没有给我错误,用户asusi_user可以读取数据库asusi_database。显然,MySQL 希望我通过 root 帐户显式向用户 asusi_admin 授予对每个创建的数据库的访问权限。但我不想使用root帐户。我认为执行此命令后

GRANT ALL PRIVILEGES ON `asusi\_%`.* TO 'asusi_admin'@'localhost WITH GRANT OPTION;

用户asusi_admin将能够向其他用户授予对带有“asusi_”前缀的ecery数据库的访问权限。也许我错过了一些东西或者这种行为就是这样设计的?

最佳答案

看来这是一个已确认的错误,尚未修复https://bugs.mysql.com/bug.php?id=75097 ,因此您现在无法对其执行任何操作。

关于mysql:带有授予选项和通配符的数据库特定用户权限委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51636483/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com