豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: MySQL proxies_priv

🤖 Ai回答:
在 MySQL 中,`proxies_priv` 是一个系统权限表,位于 `mysql` 数据库中。它用于管理 代理用户(Proxy Users) 的权限 —— 即允许某个用户以另一个用户的名义执行操作。

📌 作用

`proxies_priv` 表的主要功能是:

允许一个用户(代理用户)代表另一个用户(被代理用户)进行身份验证和操作。

这在某些高级场景中非常有用,例如:

应用程序使用一个通用账户连接数据库,但希望以不同“真实用户”的身份执行操作。
实现细粒度的访问控制或审计追踪。
集成外部认证系统(如 LDAP、PAM 等),通过代理机制映射到 MySQL 内部用户。

🗃️ 表结构(MySQL 5.7+)

sql
DESCRIBE mysql.proxies_priv;

输出示例:

| Field | Type | Null | Key | Default | Extra |

| Host | char(255) | NO | PRI | | |
| User | char(32) | NO | PRI | | |
| Proxied_host | char(255) | NO | PRI | | |
| Proxied_user | char(32) | NO | PRI | | |
| With_grant | tinyint(1) | NO | | 0 | |

字段说明:

Host, User:代理用户的身份(即谁可以代理别人)
Proxied_host, Proxied_user:被代理用户的 identity(即代理谁)
With_grant:是否允许代理用户将代理权限授予他人(类似 GRANT OPTION)

✅ 使用示例

1、授予代理权限

sql
GRANT PROXY ON 'real_user'@'localhost' TO 'proxy_user'@'%' WITH GRANT OPTION;

这表示:`proxy_user@%` 可以代理 `real_user@localhost`,并且可以将此权限转授给其他人。

2、查看当前代理权限

sql
SELECT * FROM mysql.proxies_priv;

3、撤销代理权限

sql
REVOKE PROXY ON 'real_user'@'localhost' FROM 'proxy_user'@'%';

⚠️ 注意事项

1、必须启用代理功能:
默认情况下,MySQL 允许代理(除非显式禁用)。
可通过配置项 `check_proxy_users` 和 `mysql_native_password_proxy_users` 控制行为(尤其在插件认证时)。

2、权限检查顺序:
当代理用户登录并声明要代理某个用户时,MySQL 会检查:
代理用户是否有 `PROXY` 权限;
被代理用户是否存在且有效;
是否满足 `WITH GRANT OPTION`(如果需要转授)。

3、与 `mysql.user` 表配合使用:
代理用户本身必须存在于 `mysql.user` 表中,并具有基本登录权限。
被代理用户也必须存在,否则代理失败。

4、安全风险:
代理权限若滥用可能导致权限提升或越权访问。
建议仅在必要场景下使用,并严格限制 `WITH GRANT OPTION`。

🔍 实际应用场景

假设你有一个 Web 应用,所有请求都通过一个统一账号 `app_user@%` 连接数据库,但你想根据不同的前端用户(如 `user1`, `user2`)动态切换权限上下文:

sql
创建真实用户
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';

创建代理用户
CREATE USER 'app_user'@'%' IDENTIFIED BY 'app_password';

授予代理权限
GRANT PROXY ON 'user1'@'localhost' TO 'app_user'@'%';
GRANT PROXY ON 'user2'@'localhost' TO 'app_user'@'%';

然后在应用中连接时指定:

sql
登录后切换身份(需客户端支持)
SET SESSION proxy_user = 'user1@localhost';

💡 注意:不是所有客户端都支持设置 `proxy_user`,通常需要配合特定驱动或中间件(如 ProxySQL、MaxScale 或自定义逻辑)。

🧩 相关命令 & 系统变量

`SHOW PROXY PRIVILEGES;` → 显示当前代理权限(MySQL 8.0+ 支持)
`check_proxy_users` → 是否启用代理用户检查(默认 ON)
`mysql_native_password_proxy_users` → 控制 native password 插件下的代理行为

📚 官方文档参考

[MySQL 8.0 Reference Manual Proxy Users](https://dev.mysql.com/doc/refman/8.0/en/proxy-users.html)
[GRANT Syntax PROXY Privilege](https://dev.mysql.com/doc/refman/8.0/en/grant.htmlgrant-proxy)

✅ 总结

| 项目 | 说明 |

| 表名 | `mysql.proxies_priv` |
| 所属数据库 | `mysql` |
| 功能 | 管理代理用户权限 |
| 关键字段 | Host, User, Proxied_host, Proxied_user, With_grant |
| 常用命令 | `GRANT PROXY`, `REVOKE PROXY` |
| 适用场景 | 多租户、统一入口、外部认证集成等 |
| 安全建议 | 严格控制授权范围,慎用 `WITH GRANT` |

如果你正在调试代理权限问题,或者想了解如何在你的架构中使用代理用户,请提供更多上下文,我可以为你定制解决方案 👍

Ai作答

📣 商家广告


八字

单字符域名

广告招商

月饼

广告招商


0

IP地址: 178.235.133.215

搜索次数: 7

提问时间: 2025-12-12 16:50:46

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 84331 84332 84333 下一篇