温馨提示×

CentOS MySQL权限设置怎么操作

小樊
44
2025-10-21 18:10:27
栏目: 云计算

CentOS系统下MySQL权限设置操作指南

1. 登录MySQL服务器

使用root用户登录MySQL命令行(需输入root密码):

mysql -u root -p

2. 创建新用户

通过CREATE USER语句创建用户,格式为'用户名'@'主机'localhost仅本地连接,%允许远程连接):

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'your_password';
-- 允许远程连接的示例
CREATE USER 'newuser'@'%' IDENTIFIED BY 'your_password';

3. 授予权限

使用GRANT语句为用户分配权限,常见场景如下:

  • 授予所有数据库的所有权限(谨慎使用):
    GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    
  • 授予特定数据库的所有权限
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'newuser'@'localhost';
    
  • 授予特定表的特定权限(如SELECT、INSERT、UPDATE):
    GRANT SELECT, INSERT, UPDATE ON mydatabase.mytable TO 'newuser'@'localhost';
    
  • WITH GRANT OPTION:允许用户将自己拥有的权限授予其他用户(仅root或管理员用户需要)。

4. 刷新权限

执行FLUSH PRIVILEGES使权限变更立即生效:

FLUSH PRIVILEGES;

5. 查看用户权限

使用SHOW GRANTS语句查看用户的权限详情:

SHOW GRANTS FOR 'newuser'@'localhost';
-- 查看当前登录用户的权限
SHOW GRANTS;

6. 撤销权限

使用REVOKE语句撤销用户的特定权限(格式与GRANT相反):

REVOKE SELECT ON mydatabase.* FROM 'newuser'@'localhost';
-- 撤销所有权限
REVOKE ALL PRIVILEGES ON mydatabase.* FROM 'newuser'@'localhost';

7. 删除用户

使用DROP USER语句删除用户(会同时删除其所有权限):

DROP USER 'newuser'@'localhost';

8. 可选:配置远程访问与安全

  • 开放防火墙端口(若需远程连接):
    sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
    sudo firewall-cmd --reload
    
  • 配置SELinux(若系统启用SELinux):
    sudo setsebool -P mysql_connect_any 1
    
  • 修改root密码(初始安装后建议修改):
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_root_password';
    

注意事项

  • 权限设置需遵循最小权限原则,仅授予用户完成任务所需的最小权限(如应用用户仅需SELECTINSERT权限,无需DROP权限)。
  • 远程连接时,建议限制host为具体IP地址(如192.168.1.100),而非%,以提高安全性。
  • 定期通过SHOW GRANTS检查用户权限,避免权限泄露。

0