我知道如何使用 phpMyAdmin 授予用户仅对一个数据库的访问权限,并且我知道如何授予用户使用 phpMyAdmin 创建新数据库的访问权限(使用创建权限)。
但是,授予用户创建权限也会允许他们查看所有数据库。有没有办法允许用户创建数据库,但只能查看他们创建的数据库?
我意识到这可以在创建数据库时使用实际的 PHP / MySQL 查询来完成(即GRANT
,另请参阅这里),但是是否可以仅使用 phpMyAdmin 界面来完成(因此我也不希望答案涉及不同的界面)?
答案1
在创建新数据库之前,CREATE 权限需要能够确定 MySQL 数据库名称是否已存在,因为不能有两个同名的不同数据库。
因此,列出/枚举所有数据库的读取权限是必需的。
从用户体验的角度来看,我相信你可以修补 phpMyAdmin 以仅列出用户有权访问的数据库,但随后你会被问及为什么他们无法创建新的数据库<name>
因为它显然尚不存在,但创建失败并显示“数据库已存在错误”。
所以对我来说这听起来像是一个坏主意™...