如何知道mysql用户是否拥有某个DB的全部(或部分)权限?
当然,我不会问如何使用 phpmyadmin 执行此操作,而是使用mysql命令行界面。
我的目标是收集有关某个用户的尽可能多的基本数据,但对我来说最重要的是了解该用户与给定数据库的关联程度(在本例中,该数据库的名称与用户名完全相同 - 两者都是)用户和数据库称为test
)。
编辑 PuzzledCuber:
这是我的输出show grants for 'test'@'%';
:
+--------------------------------------------------------+
| Grants for test@localhost |
+--------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'localhost' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'test'@'localhost' |
+--------------------------------------------------------+
为什么第二行(GRANT ALL...)与第一行(GRANT USAGE...)不同?
答案1
>show grants for 'user'@'%';
Thie 解释了如何检查用户及其权限:
http://xmodulo.com/how-to-view-list-of-mysql-users-and-their-privileges.html
这显示了不同的权限类型以及如何授予它们:
https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql