如何在MySQL数据库中撤销用户的特定权限?

要从MySQL数据库中收回用户授权或权限,可以使用REVOKE语句。具体步骤如下:登录到MySQL服务器;使用REVOKE语句指定要撤销的权限和用户;执行REVOKE语句来撤销权限

收回用户权限

mysql数据库收回用户授权_收回用户权限
(图片来源网络,侵删)

撤销用户对某个数据库的全部权限

要撤销用户对某个特定数据库的全部权限,你可以使用以下的SQL语句:

REVOKE ALL PRIVILEGES ON database_name.* FROM 'user_name'@'host';

这里,database_name 需要替换为实际的数据库名称,user_namehost 分别代表用户的用户名和宿主名,执行该语句后,指定用户在指定数据库上的所有权限将被撤销。

撤销用户对某个数据库的部分权限

如果只需要撤销用户对数据库中某些操作的权限,如插入、更新、删除等,可以使用以下SQL语句:

REVOKE INSERT, UPDATE, DELETE ON database_name.* FROM 'user_name'@'host';

通过在REVOKE 后指定具体的权限类型,你可以精确地控制要撤销的权限范围。

撤销用户对某个数据库的某张表的部分权限

mysql数据库收回用户授权_收回用户权限
(图片来源网络,侵删)

对于更细粒度的权限控制,比如仅撤销用户对某个数据库中某张表的某些操作权限,可以采用如下语句:

REVOKE INSERT, UPDATE, DELETE ON database_name.table_name FROM 'user_name'@'host';

table_name 替换为实际的表名,此操作将撤销用户在这张表上的部分操作权限。

撤销用户对任何数据库的任何表的部分权限

有时,你可能需要限制用户对任何数据库的任何表进行某些操作的权限,例如撤销查询权限,可以通过以下语句实现:

REVOKE SELECT ON *.* FROM 'user_name'@'host';

这将撤销用户在所有数据库和所有表上的查询权限。

撤销 WITH GRANT OPTION 权限

当用户被授予了WITH GRANT OPTION 权限时,他们有能力将自己所拥有的权限授予其他用户,撤销这一特殊权限,需使用以下语句:

mysql数据库收回用户授权_收回用户权限
(图片来源网络,侵删)
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_name'@'host';

确保REVOKE 语句与之前的GRANT 语句完全一致,是避免撤销失败的关键。

权限表

了解MySQL如何管理权限也很重要,全局权限存储在mysql.user 表中,适用于服务器内所有数据库,数据库级别的权限存储在mysql.dbmysql.host 表中,而表层级的权限直接与指定的表关联。

撤销权限的注意事项

撤销权限时,语句必须与授权语句完全一致,否则撤销可能不会生效。

USAGE 权限无法撤销,创建用户时会自动赋予。

默认情况下,新建的用户拥有对test 数据库的全部权限,且这些权限不能被撤销。

常见问题FAQs

Q1: 为什么撤销操作没有生效?

A1: 确保撤销语句与之前的授权语句完全匹配,包括用户名、主机和授权的具体内容。

Q2: 如何检查用户当前的权限?

A2: 可以使用SHOW GRANTS 命令来查看用户的权限,SHOW GRANTS FOR 'user_name'@'host';

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/843780.html

(0)
未希的头像未希新媒体运营
上一篇 2024-08-05 12:28
下一篇 2024-08-05 12:31

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入