ubuntu上mysql权限如何管理

在Ubuntu上管理MySQL权限可通过以下操作实现:

  1. 登录MySQL

    mysql -u root -p
    

    输入密码后进入命令行界面。

  2. 查看用户权限

    • 查看当前用户权限:
      SHOW GRANTS FOR CURRENT_USER();
      
    • 查看特定用户权限:
      SHOW GRANTS FOR 'username'@'host';
      
  3. 创建用户并授权

    • 创建用户(指定主机和密码):
      CREATE USER 'username'@'host' IDENTIFIED BY 'password';
      

      host可为localhost%或具体IP,%表示允许远程访问)。

    • 授予权限(如数据库/表级权限):
      GRANT ALL PRIVILEGES ON database.* TO 'username'@'host';  -- 所有权限
      GRANT SELECT, INSERT ON database.table TO 'username'@'host';  -- 部分权限
      

      (支持ALLSELECTINSERTUPDATE等权限类型)。

  4. 刷新权限
    执行权限修改后需刷新生效:

    FLUSH PRIVILEGES;
    ```。  
    
    
  5. 撤销权限

    REVOKE privileges ON database.table FROM 'username'@'host';
    

    (如REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'localhost'可撤销所有权限)。

  6. 删除用户

    DROP USER 'username'@'host';
    ```。  
    
    
  7. 其他操作

    • 修改密码(MySQL 5.7.6+):
      ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
      ```。  
      
    • 锁定/解锁用户
      ALTER USER 'username'@'host' ACCOUNT LOCK/UNLOCK;
      ```。  
      
      

安全建议

  • 遵循“最小权限原则”,仅授予必要权限。
  • 定期审计用户权限,删除冗余账户。
  • 远程访问时限制IP范围,避免使用%通配符。

参考来源: