You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置MySQL用户访问除指定数据库外的所有本地数据库

分步实现数据库权限限制方案

没问题,我来一步步帮你搞定这个权限配置需求!既然你有root全权限,咱们可以分阶段实现——先搞定单个数据库的限制,再扩展到匹配固定前缀的所有数据库。

1. 登录数据库(以MySQL/MariaDB为例)

先使用root账户登录到本地数据库命令行:

mysql -u root -p

输入你的root密码后进入操作界面。

2. 创建新的本地用户

假设我们要创建的用户名为restricted_user,设置一个安全密码(记得替换成你自己的密码):

CREATE USER 'restricted_user'@'localhost' IDENTIFIED BY 'your_strong_password_here';

3. 先实现单个数据库的权限限制

咱们采用「先授全权限,再收指定权限」的思路,这样操作更简单:

-- 先给用户授予所有数据库的全权限
GRANT ALL PRIVILEGES ON *.* TO 'restricted_user'@'localhost';

-- 收回目标数据库的所有权限(替换成你要限制的数据库名)
REVOKE ALL PRIVILEGES ON `protected_db`.* FROM 'restricted_user'@'localhost';

这里用反引号`包裹数据库名,是为了避免数据库名包含特殊字符时出现语法错误。

4. 扩展到匹配固定前缀的所有数据库

因为你提到后续可能新增多个带固定前缀的数据库(比如前缀是internal_),MySQL/MariaDB支持用%作为通配符匹配前缀,直接批量收回权限即可:

-- 收回所有以internal_开头的数据库权限(替换成你的目标前缀)
REVOKE ALL PRIVILEGES ON `internal_%`.* FROM 'restricted_user'@'localhost';

这样不管后续新增多少个带internal_前缀的数据库,这个用户都自动无法访问,不需要重复配置。

5. 刷新权限让配置生效

最后一定要执行刷新命令,让权限配置立即生效:

FLUSH PRIVILEGES;

验证配置是否生效

你可以切换到新用户登录,测试权限:

mysql -u restricted_user -p

尝试访问被限制的数据库,比如:

USE internal_sales_db;

如果配置正确,会收到Access denied的提示,而访问其他数据库则能正常操作。


内容的提问来源于stack exchange,提问作者CMOS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:10:17