centos

centos mysql权限设置技巧

小樊
41
2025-08-28 15:32:01
栏目: 云计算

以下是CentOS下MySQL权限设置的核心技巧,涵盖用户管理、权限分配及安全配置:

一、基础用户与权限操作

  1. 创建用户

    CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';  
    -- 例:允许本地登录  
    CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456';  
    -- 例:允许远程登录(将'localhost'改为'%')  
    CREATE USER 'dev'@'%' IDENTIFIED BY '123456';  
    

    注:FLUSH PRIVILEGES;需在修改后执行使生效。

  2. 授予权限

    • 全局权限(对所有数据库):
      GRANT ALL PRIVILEGES ON *.* TO '用户名'@'主机名';  
      
    • 数据库级权限
      GRANT SELECT, INSERT, UPDATE ON 数据库名.* TO '用户名'@'主机名';  
      
    • 表级权限
      GRANT SELECT, DELETE ON 数据库名.表名 TO '用户名'@'主机名';  
      
  3. 撤销权限

    REVOKE 权限 ON 对象 FROM '用户名'@'主机名';  
    -- 例:撤销对db1库的所有权限  
    REVOKE ALL PRIVILEGES ON db1.* FROM 'dev'@'localhost';  
    

二、高级权限管理技巧

  1. 角色管理(MySQL 8.0+)

    -- 创建角色并授予权限  
    CREATE ROLE 'role_name';  
    GRANT SELECT, INSERT ON db1.* TO 'role_name';  
    -- 将角色赋予用户  
    GRANT 'role_name' TO '用户名'@'主机名';  
    
  2. 远程访问控制

    • 修改/etc/my.cnf,设置bind-address=0.0.0.0允许远程连接(需配合防火墙)。
    • 授权远程用户:
      GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' IDENTIFIED BY '密码';  
      
  3. 安全增强配置

    • 禁止root远程登录:
      UPDATE mysql.user SET host='localhost' WHERE user='root';  
      FLUSH PRIVILEGES;  
      
    • 启用SSL加密连接(需配置证书路径):
      GRANT ALL PRIVILEGES ON *.* TO '用户'@'主机名' REQUIRE SSL;  
      

三、权限验证与维护

  1. 查看权限

    -- 查看当前用户权限  
    SHOW GRANTS;  
    -- 查看指定用户权限  
    SHOW GRANTS FOR '用户名'@'主机名';  
    
  2. 删除用户

    DROP USER '用户名'@'主机名';  
    
  3. 定期审计

    • 通过mysql命令行或工具(如auditd)监控异常登录和权限滥用。
    • 定期清理冗余用户,遵循“最小权限原则”分配权限。

四、注意事项

参考来源:

0
看了该问题的人还看了