MySQL 支持多用户访问,通过权限管理机制可以为不同用户分配不同的数据库操作权限。合理配置用户权限不仅能实现多用户协作,还能提升数据库安全性。以下是配置 MySQL 多用户访问权限的常用方法和步骤。
创建新用户并设置访问权限
默认情况下,MySQL 的 root 用户拥有全部权限,但不建议多个用户共用 root 账号。应为每个使用者创建独立账户。
使用以下 SQL 命令创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例如,创建一个本地访问的用户:
CREATE USER 'devuser'@'localhost' IDENTIFIED BY 'securepass123';
若允许该用户从任意主机连接(注意安全风险):
CREATE USER 'devuser'@'%' IDENTIFIED BY 'securepass123';
授予用户具体权限
创建用户后需授权,才能访问数据库。MySQL 提供多种权限级别:全局、数据库、表、列等。
常用授权命令如下:
GRANT privileges ON database.table TO 'username'@'host';
示例:
授予用户对某个数据库的所有权限:GRANT ALL PRIVILEGES ON mydb.* TO 'devuser'@'localhost';仅授予查询和插入权限:
GRANT SELECT, INSERT ON mydb.users TO 'devuser'@'%';刷新权限使更改生效:
FLUSH PRIVILEGES;
修改或回收用户权限
当用户职责变化时,可调整其权限。
收回某项权限:
REVOKE INSERT ON mydb.users FROM 'devuser'@'localhost';
删除用户:
DROP USER 'devuser'@'localhost';
查看用户当前权限:
SHOW GRANTS FOR 'devuser'@'localhost';
远程访问配置注意事项
若用户需从远程连接 MySQL,还需确保:
MySQL 服务监听外部请求:检查配置文件 my.cnf 或 mysqld.cnf 中的bind-address是否设置为
0.0.0.0或注释掉(默认监听所有接口)。 防火墙开放 3306 端口。 用户授权主机部分为
'%'或指定 IP 地址。
重启服务使配置生效:
sudo systemctl restart mysql
基本上就这些。通过创建用户、分配最小必要权限、定期审查授权,可安全实现 MySQL 多用户访问。不复杂但容易忽略细节,比如未执行 FLUSH PRIVILEGES 或防火墙限制。
