2

我的情况是这样的:我有两台服务器,一台是运行 IIS 并保存我的网站的 windows 服务器。另一个是装有我的 mysql 服务器的 linux 服务器。

我在 mysql 服务器上创建了一个具有最低权限的(mysql)用户,并且在从我的网站连接运行查询时使用它的凭据。

但是当我运行查询并检查 mysql 服务器上运行的进程(mysql> show processlist)时,我看到我执行的查询(来自网站)正在 (mysql) root 帐户下运行!

知道为什么会发生这种情况吗?


Hituptony 明白了 :-) 我的查询由 SP 处理,并变成一个准备好的语句然后运行......那个 SP 是用 root 帐户定义的(天知道为什么),而且更多的没有“调用者” "安全条款。

http://dev.mysql.com/doc/refman/5.5/en/stored-programs-security.html

4

1 回答 1

1

我想这取决于你在做什么,如果你正在运行一个存储过程并且它是由一个 root 帐户创建的,那么当你运行它时,它仍然会显示“创建它的用户”作为运行它的用户,当实际上,它可能是连接用户。理论上,如果您正在运行一个 select 语句,那么您将在其中作为连接用户运行,因为选择不会有“创建者”......如果你发现我的偏差......

于 2013-02-11T14:46:51.113 回答