MySQL 用户权限管理:创建用户、分配权限,实战操作
📅 2026/7/17 0:26:47
👁️ 阅读次数
📝 编程学习
前言
线上数据库绝对不能直接使用 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';六、权限安全规范
- 业务程序账号只分配对应库的 DML 权限,不给 DROP、ALTER、CREATE;
- 禁止线上程序使用 root 账号;
- 远程账号密码必须包含大小写、数字、特殊符号;
- 尽量限制访问 IP,不用万能
%; - 离职人员、废弃项目及时删除数据库账号。
编程学习
技术分享
实战经验