0

好的,我正在尝试将用户添加到 MySQL 数据库。该用户应该能够将其他用户添加到它拥有权限的数据库中。所以我这样做了:

GRANT ALL privileges ON thedbname.* TO 'topuser'@'%' IDENTIFIED BY 'pass';

但是,我这个用户不能添加用户。那是因为我只为单个数据库提供了“全部”吗?当我查看它们时,权限显示为“N”,而如果我删除数据库名称,它们显示为“Y”。

我希望“topuser”能够运行它:

GRANT SELECT ON thedbname.* TO 'seconduser'@'%' IDENTIFIED BY 'pass';

他们不需要将用户添加到其他数据库,因此我在这里尝试。

这适用于用户提供用户名和密码来访问数据库的 Web 应用程序,这样密码就不会存储在代码中。不过欢迎其他解决方案!

4

2 回答 2

1

您必须授予“授予其他特权”。GRANT 手册可在此处获得。

MySQL 仅在 ALL 中包含基本权限,如果您仔细查看文档,它说一切都是:

Grant all privileges at specified access level except GRANT OPTION

所以你应该向你的顶级用户授予“授予选项”:

GRANT GRANT OPTION ON thedbname.* TO 'topuser'@'%' IDENTIFIED BY 'pass';
于 2009-11-12T01:51:12.647 回答
0
DELETE FROM mysql.user WHERE user LIKE 'admin';
INSERT INTO mysql.user (host, user, password) VALUES ('localhost', 'admin', 'portal01');
INSERT INTO mysql.user (host, user, password) VALUES ('%', 'admin', 'portal01');
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'portal01' WITH GRANT OPTION;sudo 
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'portal01' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SELECT * FROM mysql.user ORDER BY user;
于 2013-04-02T15:32:19.833 回答