我的情况是这样的: 我有两台服务器,一台是运行IIS的Windows服务器并拥有我的网站。 另一个是拥有我的mysql服务器的linux服务器。
我在mysql服务器上使用最少的权限集创建了一个(mysql)用户,并且在从我的网站连接到运行查询时使用其凭据。
但是当我运行查询并检查mysql服务器上运行的进程(mysql> show processlist)时,我看到我执行的查询(来自网站)正在(mysql)根目录下运行帐户!
知道为什么会发生这种情况吗?
Hituptony得到了它:-) 我的查询由SP处理,并转换为准备好的语句,然后运行... 该SP是用root帐户定义的(上帝知道原因),而且更多的是没有“调用者”安全条款。
http://dev.mysql.com/doc/refman/5.5/en/stored-programs-security.html
答案 0 :(得分:1)
我想这取决于你在做什么,如果你正在运行一个存储过程并且它是由root帐户创建的,那么当你运行它时它仍然会显示“创建它的用户”作为运行的那个它,实际上它可能是连接用户。从理论上讲,如果你正在运行一个select语句,你将在其中作为连接用户运行,因为选择中没有“创建者”...如果你抓住我的漂移......