在Ubuntu上管理MySQL权限可通过以下操作实现:
-
登录MySQL
mysql -u root -p输入密码后进入命令行界面。
-
查看用户权限
- 查看当前用户权限:
SHOW GRANTS FOR CURRENT_USER(); - 查看特定用户权限:
SHOW GRANTS FOR 'username'@'host';
- 查看当前用户权限:
-
创建用户并授权
- 创建用户(指定主机和密码):
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'; -- 部分权限(支持
ALL、SELECT、INSERT、UPDATE等权限类型)。
- 创建用户(指定主机和密码):
-
刷新权限
执行权限修改后需刷新生效:FLUSH PRIVILEGES; ```。 -
撤销权限
REVOKE privileges ON database.table FROM 'username'@'host';(如
REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'localhost'可撤销所有权限)。 -
删除用户
DROP USER 'username'@'host'; ```。 -
其他操作
- 修改密码(MySQL 5.7.6+):
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password'; ```。 - 锁定/解锁用户:
ALTER USER 'username'@'host' ACCOUNT LOCK/UNLOCK; ```。
- 修改密码(MySQL 5.7.6+):
安全建议:
- 遵循“最小权限原则”,仅授予必要权限。
- 定期审计用户权限,删除冗余账户。
- 远程访问时限制IP范围,避免使用
%通配符。
参考来源: