温馨提示×

Ubuntu MySQL权限如何管理

小樊
48
2025-08-13 10:51:27
栏目: 云计算

在Ubuntu上管理MySQL权限需通过命令行操作,核心命令及用法如下:

  1. 登录MySQL

    sudo mysql -u root -p # 使用root用户登录(需输入密码) 

    若root用户配置为密码验证,直接使用mysql -u root -p

  2. 创建用户

    CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; 
    • 主机名localhost(仅本地访问)、%(允许所有IP)或具体IP。
    • 示例:CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456';
  3. 授予权限

    GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机名'; 
    • 权限示例:SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES(所有权限)。
    • 范围:*.*(全局权限)、数据库.*(数据库权限)、数据库.表(表权限)。
    • 示例:GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'localhost';
    • 若需允许用户授权他人,添加WITH GRANT OPTION
  4. 刷新权限

    FLUSH PRIVILEGES; # 使权限修改立即生效 
  5. 查看权限

    SHOW GRANTS FOR '用户名'@'主机名'; 

    示例:SHOW GRANTS FOR 'dev'@'localhost';

  6. 撤销权限

    REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'主机名'; 

    示例:REVOKE DELETE ON mydb.* FROM 'dev'@'localhost';
    操作后需执行FLUSH PRIVILEGES;

  7. 删除用户

    DROP USER '用户名'@'主机名'; 

    示例:DROP USER 'dev'@'localhost';

注意事项

  • 遵循“最小权限原则”,仅授予用户必要的权限。
  • 远程访问需修改MySQL配置文件(/etc/mysql/mysql.conf.d/mysqld.cnf),将bind-address设为0.0.0.0并重启服务。
  • 生产环境中建议使用强密码,并定期审计权限。

0