HOME> 华语世界杯> MySQL 创建仅管理单个数据库的专属用户

MySQL 创建仅管理单个数据库的专属用户

华语世界杯 2026-07-19 16:19:39

一、核心逻辑创建用户(指定访问地址:本地localhost​ / 任意%​)

授予该数据库​全部权限​(增删改查、建表、建索引、存储过程等完整管理权限)

刷新权限生效

二、完整执行语句(分步复制执行)1. 登录 MySQL root 管理员mysql -uroot -p

2. 创建用户场景 A:仅本地客户端连接(推荐,更安全)用户名:test_user​,密码:123456​

CREATE USER 'test_user'@'localhost' IDENTIFIED BY '123456';

场景 B:任意 IP 都能连接(远程开发 / 服务器互通)CREATE USER 'test_user'@'%' IDENTIFIED BY '123456';

3. 授予单个库完整管理权限目标数据库:test​(替换成你的库名)

GRANT ALL PRIVILEGES ON test.* TO 'test_user'@'localhost';

​test.*​:代表test​库下所有表、视图、存储过程

​ALL PRIVILEGES​:包含建库、删表、索引、事务、存储过程等全部管理权限

如果是远程用户,把末尾 @'localhost'​ 改成 @'%'​,和创建用户保持一致

4. 刷新权限(必须执行,否则不生效)FLUSH PRIVILEGES;

三、验证权限是否生效1. 查看用户权限SHOW GRANTS FOR 'test_user'@'localhost';

输出会显示:GRANT ALL PRIVILEGES ON ​test.* TO ​test_user@​localhost``

2. 切换新用户登录测试mysql -utest_user -p123456

use test;

create table demo(id int); -- 测试建表,无报错即权限正常

create database xxx; -- 会报错,无法创建其他库,符合需求

四、常用配套操作1. 修改用户密码ALTER USER 'test_user'@'localhost' IDENTIFIED BY '新密码';

FLUSH PRIVILEGES;

2. 回收权限REVOKE ALL PRIVILEGES ON test.* FROM 'test_user'@'localhost';

FLUSH PRIVILEGES;

3. 删除用户DROP USER IF EXISTS 'test_user'@'localhost';

五、关键注意事项​权限隔离​:该用户只能操作test​库,无法访问其他数据库、无法操作全局配置;

​地址匹配​:创建用户和授权的@xxx​地址必须完全一致,否则权限不生效;

MySQL8.x 兼容:上面语句适配 MySQL8.0+,不再支持老旧IDENTIFIED WITH mysql_native_password​语法,如需兼容旧客户端可额外指定:

CREATE USER 'test_user'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

如果你之前遇到 Permission denied​ 建库报错:用 root 账号执行上面授权语句后,新用户就能正常在test​库里建表、删表、修改结构。

六、极简一键脚本(直接替换库名 / 用户名 / 密码)-- 替换 test(库) test_user(账号) 123456(密码)

CREATE USER 'test_user'@'localhost' IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON test.* TO 'test_user'@'localhost';

FLUSH PRIVILEGES;

小米电视会员能看多少平台
中国台湾