答案:MySQL 通过 GRANT 授予权限,REVOKE 撤销权限,SHOW GRANTS 查看权限,需配合 FLUSH PRIVILEGES 生效,遵循最小权限原则确保安全。

在 MySQL 中,授予用户权限是数据库管理的重要操作。通过合理分配权限,可以确保用户只能访问和操作被授权的内容,从而提升数据库的安全性。MySQL 使用 GRANT 语句来为用户赋予特定权限。
创建用户并设置密码
在授予权限前,通常需要先创建用户。使用 CREATE USER 语句可添加新用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例如,创建一个本地访问的用户:
CREATE USER 'devuser'@'localhost' IDENTIFIED BY 'mypassword';
其中,'localhost'表示该用户只能从本机登录,若允许远程访问,可改为具体 IP 或使用 '%' 表示任意主机。
授予用户权限
使用 GRANT 语句为用户分配权限。基本语法如下:
GRANT 权限类型 ON 数据库名。 表名 TO 'username'@'host' [IDENTIFIED BY 'password'];
常见权限说明:
- SELECT:查询数据
- INSERT:插入数据
- UPDATE:修改数据
- DELETE:删除数据
- CREATE:创建表或数据库
- DROP:删除表或数据库
- ALL PRIVILEGES:所有权限(慎用)
示例 1:授予用户对某个数据库所有表的读写权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'devuser'@'localhost';
示例 2:授予用户对所有数据库和表的全部权限:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'adminpass';
刷新权限并验证
权限更改后,需执行以下命令使配置生效:
FLUSH PRIVILEGES;
这会重新加载权限表,确保新设置立即生效。
可通过以下命令查看用户当前权限:
SHOW GRANTS FOR 'username'@'host';
例如:
SHOW GRANTS FOR 'devuser'@'localhost';
撤销权限
如需回收用户权限,使用 REVOKE 语句:
REVOKE DELETE ON mydb.* FROM 'devuser'@'localhost';
撤销全部权限:
REVOKE ALL PRIVILEGES ON *.* FROM 'devuser'@'localhost';
基本上就这些。掌握 GRANT、REVOKE 和SHOW GRANTS三个关键命令,就能有效管理 MySQL 用户的权限。注意最小权限原则,避免随意赋予ALL PRIVILEGES,尤其是对远程用户。