MySQL 用户管理基础概念

MySQL 用户管理涉及创建、修改、删除用户账号,并分配权限以控制数据库访问。用户信息存储在 mysql.user 表中,权限通过 GRANT 和 REVOKE 语句管理。

用户创建与删除

创建用户需指定用户名、主机和密码:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

删除用户需明确主机范围:

DROP USER 'username'@'host';
权限分配与回收

授予用户对特定数据库的权限:

GRANT SELECT, INSERT ON database.* TO 'username'@'host';

回收权限使用 REVOKE:

REVOKE INSERT ON database.* FROM 'username'@'host';

权限层级与作用域

MySQL 权限分为全局、数据库、表和列四级。

全局权限

影响所有数据库,通常授予管理员:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
数据库级权限

限定到特定数据库:

GRANT CREATE, DROP ON dbname.* TO 'dev'@'%';
表级权限

精确控制表操作:

GRANT DELETE ON dbname.tablename TO 'user'@'192.168.1.%';

密码与安全策略

修改密码

通过 ALTER USER 或 SET PASSWORD:

ALTER USER 'user'@'host' IDENTIFIED BY 'new_password';
密码复杂度要求

启用 validate_password 插件强制策略:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

用户角色管理

MySQL 8.0+ 支持角色简化权限分配:

创建角色
CREATE ROLE 'read_only';
分配角色
GRANT 'read_only' TO 'user'@'host';

审计与监控

查看用户权限
SHOW GRANTS FOR 'user'@'host';
监控登录行为

启用通用查询日志:

SET GLOBAL general_log = 'ON';

最佳实践

  • 遵循最小权限原则,避免滥用 ALL PRIVILEGES
  • 定期审计用户权限,清理无用账号。
  • 使用角色管理减少重复授权操作。

通过以上方法,可系统化管理 MySQL 用户,平衡安全性与便捷性。

https://github.com/tonygus/o8m_kjxb
https://github.com/alexof90/5tn_dtce
https://github.com/sean456665/bvw_594v
https://github.com/joshvfort/c3c_rtgd
https://github.com/tankiahabi/5jl_9iqo

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐