MySQL 用户权限管理:创建用户、分配权限,实战操作

📅 2026/7/17 0:26:47 👁️ 阅读次数 📝 编程学习
MySQL 用户权限管理:创建用户、分配权限,实战操作

前言

线上数据库绝对不能直接使用 root 账号给程序连接,权限过大一旦泄露整库沦陷。 本文完整实操:创建账号、授权、回收权限、修改密码、删除用户,适配运维与开发日常操作。


一、登录 root 管理员账号

mysql -uroot -p

二、创建新用户语法

-- 格式:CREATE USER '用户名'@'访问主机' IDENTIFIED '密码'; -- 1. 仅本地localhost登录 CREATE USER 'dev'@'localhost' IDENTIFIED 'Dev@123456'; -- 2. 允许任意远程IP连接(程序服务器使用) CREATE USER 'shop'@'%' IDENTIFIED 'Shop@654321'; -- 3. 仅指定IP访问,安全性最高 CREATE USER 'admin'@'192.168.1.%' IDENTIFIED 'Admin@789';

三、分配权限 GRANT

1. 给指定库全部增删改查权限(程序账号标准配置)

GRANT SELECT,INSERT,UPDATE,DELETE ON shop_db.* TO 'shop'@'%'; FLUSH PRIVILEGES; -- 刷新权限立即生效

2. 管理员全库所有权限(仅 DBA 使用)

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'192.168.1.%'; FLUSH PRIVILEGES;

3. 仅查询权限(报表只读账号)

GRANT SELECT ON shop_db.* TO 'read_user'@'%'; FLUSH PRIVILEGES;

四、回收权限 REVOKE

-- 回收用户删除、修改权限 REVOKE UPDATE,DELETE ON shop_db.* FROM 'shop'@'%'; FLUSH PRIVILEGES;

五、常用运维操作

修改用户密码

ALTER USER 'shop'@'%' IDENTIFIED 'NewPass@123';

查询所有用户

SELECT user,host FROM mysql.user;

查看用户已有权限

SHOW GRANTS FOR 'shop'@'%';

删除无用账号

DROP USER IF EXISTS 'dev'@'localhost';

六、权限安全规范

  1. 业务程序账号只分配对应库的 DML 权限,不给 DROP、ALTER、CREATE;
  2. 禁止线上程序使用 root 账号;
  3. 远程账号密码必须包含大小写、数字、特殊符号;
  4. 尽量限制访问 IP,不用万能%
  5. 离职人员、废弃项目及时删除数据库账号。