如何在mysql中授予和回收用户权限

来源:这里教程网 时间:2026-02-28 20:14:34 作者:

在 MySQL 中管理用户权限是数据库安全的重要部分。通过 GRANTREVOKE 语句,可以精确控制用户对数据库、表或特定操作的访问权限。

授予用户权限(GRANT)

使用 GRANT 语句为用户分配权限。基本语法如下:

GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'主机' [IDENTIFIED BY '密码'];

常见权限包括:

SELECT:读取数据 INSERT:插入数据 UPDATE:修改数据 DELETE:删除数据 CREATE:创建表或数据库 DROP:删除表或数据库 ALL PRIVILEGES:所有权限

示例:

授予用户 testuser 从本地访问 testdb 数据库中所有表的查询权限: GRANT SELECT ON testdb.* TO 'testuser'@'localhost';授予用户远程访问并拥有 testdb 所有权限: GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%' IDENTIFIED BY 'password';刷新权限使更改生效: FLUSH PRIVILEGES;

回收用户权限(REVOKE)

使用 REVOKE 语句收回已授予的权限。语法与 GRANT 类似:

REVOKE 权限类型 ON 数据库名.表名 FROM '用户名'@'主机';

示例:

收回 testuser 在 testdb 上的 INSERT 权限: REVOKE INSERT ON testdb.* FROM 'testuser'@'localhost';收回所有权限: REVOKE ALL PRIVILEGES ON testdb.* FROM 'testuser'@'localhost';

注意:REVOKE 不会删除用户账户本身,仅移除权限。

查看用户权限

检查用户当前权限可避免重复授权或遗漏:

查看当前用户的权限: SHOW GRANTS;查看指定用户的权限: SHOW GRANTS FOR 'testuser'@'localhost';

基本上就这些。合理使用 GRANT 和 REVOKE 能有效控制数据库访问,提升安全性。操作后记得执行 FLUSH PRIVILEGES,确保权限立即生效。

相关推荐