在 phpmyadmin 5.1 中撤销数据库权限必须进入「用户账户」→「编辑权限」→「数据库」标签页,定位目标库行取消勾选并执行;若界面未显示该库,需用 sql 执行 revoke 并 flush privileges;撤销后须运行 show grants 验证实际权限。
直接在 phpmyadmin 5.1 界面里撤销数据库权限,必须进「用户账户」→「编辑权限」→ 切换到「数据库」标签页操作;不能只改全局权限,否则对特定库的授权依然有效。
在「数据库」标签页里取消目标库的权限
phpMyAdmin 5.1 的权限编辑界面分三块:全局、数据库、表。撤销某个库的权限,必须定位到该库对应行,而不是在「全局权限」里瞎勾选。
- 进入顶部菜单「用户账户」→ 找到目标用户 → 点击「编辑权限」
- 顶部切换到「数据库」标签页(不是「全局权限」)
- 在列表中找到你要撤销权限的那个数据库名,点击右侧「编辑权限」链接(不是旁边的删除图标)
- 在新页面里,取消所有勾选项(如
SELECT、INSERT、DROP等),然后点「执行」 - 如果该用户在多个库上有权限,需对每个库重复此操作
用 SQL 命令撤销更可靠,尤其当界面没显示目标库时
有时「数据库」标签页不列出全部已授权库(比如权限是通过 GRANT 直接加的,但未在 phpMyAdmin 缓存中刷新),这时界面操作会漏掉。直接发 REVOKE 最稳。
- 在 phpMyAdmin 左侧选
mysql数据库 → 点「SQL」标签页 - 执行类似语句:
REVOKE SELECT, INSERT, UPDATE, DELETE ON `mydb`.* FROM 'user'@'host'; -
user和host必须和SHOW GRANTS FOR 'user'@'host';输出完全一致(包括引号、大小写) - 执行后务必运行
FLUSH PRIVILEGES;,否则变更不生效 - 若要撤销所有库权限,用
REVOKE ALL PRIVILEGES ON `mydb`.* FROM 'user'@'host';
撤销后仍能操作?检查有没有残留的全局或表级权限
常见错觉:明明在「数据库」页取消了权限,用户还能查表。大概率是用户还挂着全局权限(*.*)或者被授予了某张表的单独权限。
- 先运行
SHOW GRANTS FOR 'user'@'host';,看输出里有没有ON *.*或ON `mydb`.`mytable`这类条目 - 如果有
GRANT OPTION,用户可能自己再授予权限,得一并REVOKE GRANT OPTION ON *.* FROM 'user'@'host'; - MySQL 8.0+ 用户可能属于某个角色(
role_readonly),仅 revoke 用户权限无效,得查SELECT * FROM mysql.role_edges WHERE TO_HOST = 'user';
权限撤销不是点一下就完事的事——SHOW GRANTS 输出才是唯一可信依据,其他全是推测。每次改完都该跑一遍它,不然你永远不知道用户实际能干啥。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











