MySQL GRANT PROXY - 这是什么意思?

Dar*_*s.V 17 mysql proxy

我跑:

show grants for root@localhost;
Run Code Online (Sandbox Code Playgroud)

我看到

 GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
Run Code Online (Sandbox Code Playgroud)

来自 mysql 文档:

https://dev.mysql.com/doc/refman/5.5/en/proxy-users.html

这使得外部用户可以成为第二个用户的代理;也就是拥有第二个用户的权限。换句话说,外部用户是“代理用户”(可以冒充或成为其他用户的用户),第二个用户是“代理用户”(其身份可以被代理用户使用的用户) .

但我不明白他们的意思。我从另一位离职的工人那里得到了这个系统,想确保一切是否安全,不知道是否需要这笔补助金。但如果它不会造成任何安全问题,我可以离开它。

有人可以用更简单的方式解释吗?

更新:

我如何以其他用户的身份连接?我正在尝试用户名密码的各种组合,但无法连接。

例如,我使用了 root 用户,但使用了另一个用户的密码,这不起作用。尝试了另一个用户和 root 密码,也没有奏效。

更新:

或者这可能意味着 root 用户可以作为其他用户连接?至少如何做到这一点,例如,如果是这样?

Rol*_*DBA 4

MySQL 用户身份验证是一个解释起来相当漫长的过程。我建议您参考我 3.5 年前对MySQL 错误的回答:用户'a'@'localhost'访问被拒绝(使用密码:YES),这样您就可以看到用户进行身份验证所采取的步骤。

PROXY 授权的作用是允许一个用户伪装成另一用户并绕过 MySQL 正常但冗长的用户身份验证协议

如果有人知道这一点并开始利用它,这种代理授权可能会成为一个安全漏洞。停用此功能的最快方法是运行

TRUNCATE TABLE mysql.proxies_priv;
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

这将消除当前的代理权限。

之后,如果您想限制代理权限,请转到操作系统并执行以下操作:

cd /var/lib/mysql/mysql
chmod -w proxies_priv.*
Run Code Online (Sandbox Code Playgroud)

这将阻止创建新的代理权限。

试一试 !!!

  • 注意:此答案不显示如何使用代理功能 (2认同)