阅读量:1
以下是CentOS下MySQL权限设置的核心技巧,涵盖用户管理、权限分配及安全配置:
一、基础用户与权限操作
-
创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; -- 例:允许本地登录 CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456'; -- 例:允许远程登录(将'localhost'改为'%') CREATE USER 'dev'@'%' IDENTIFIED BY '123456';注:
FLUSH PRIVILEGES;需在修改后执行使生效。 -
授予权限
- 全局权限(对所有数据库):
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'主机名'; - 数据库级权限:
GRANT SELECT, INSERT, UPDATE ON 数据库名.* TO '用户名'@'主机名'; - 表级权限:
GRANT SELECT, DELETE ON 数据库名.表名 TO '用户名'@'主机名';
- 全局权限(对所有数据库):
-
撤销权限
REVOKE 权限 ON 对象 FROM '用户名'@'主机名'; -- 例:撤销对db1库的所有权限 REVOKE ALL PRIVILEGES ON db1.* FROM 'dev'@'localhost';
二、高级权限管理技巧
-
角色管理(MySQL 8.0+)
-- 创建角色并授予权限 CREATE ROLE 'role_name'; GRANT SELECT, INSERT ON db1.* TO 'role_name'; -- 将角色赋予用户 GRANT 'role_name' TO '用户名'@'主机名'; -
远程访问控制
- 修改
/etc/my.cnf,设置bind-address=0.0.0.0允许远程连接(需配合防火墙)。 - 授权远程用户:
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' IDENTIFIED BY '密码';
- 修改
-
安全增强配置
- 禁止root远程登录:
UPDATE mysql.user SET host='localhost' WHERE user='root'; FLUSH PRIVILEGES; - 启用SSL加密连接(需配置证书路径):
GRANT ALL PRIVILEGES ON *.* TO '用户'@'主机名' REQUIRE SSL;
- 禁止root远程登录:
三、权限验证与维护
-
查看权限
-- 查看当前用户权限 SHOW GRANTS; -- 查看指定用户权限 SHOW GRANTS FOR '用户名'@'主机名'; -
删除用户
DROP USER '用户名'@'主机名'; -
定期审计
- 通过
mysql命令行或工具(如auditd)监控异常登录和权限滥用。 - 定期清理冗余用户,遵循“最小权限原则”分配权限。
- 通过
四、注意事项
- 生产环境中避免使用
ALL PRIVILEGES,按需分配最小必要权限。 - 远程访问需结合防火墙(
firewall-cmd)限制IP段。 - 操作前备份数据库,避免误操作导致权限异常。
参考来源:
以上就是关于“centos mysql权限设置技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm