Mysql CREATE DEFINER

前端之家收集整理的这篇文章主要介绍了Mysql CREATE DEFINER前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是我在这里的第一个问题,老实说,经过长时间的调查,我没有回答.

我创建了一个在CentOS Web服务器上运行的Intranet Web应用程序,该应用程序使用另一个本地服务器(总是CentOS)作为mysql数据库.

数据库内部,我创建了例如以下开始的例程:

CREATE DEFINER='localuser02'@'192.168.0.5' PROCEDURE 'Createuser'

IP 192.168.0.5是安装应用程序的服务器的IP.

直到这里一切正常,应用程序正在运行.
几天前,由于运行应用程序的服务器是旧的,要添加另一台服务器(我的意思是商用服务器),我想的是在它们之间进行流量平衡.

现在我已经正确设置了两个服务器来运行应用程序,问题在于sql DEFINER只有一个IP.

我的服务器现在有192.168.0.5和192.168.0.6.

从理论上讲,我的新DEFINER应该是这样的:

CREATE DEFINER='localuser02'@'192.168.0.5,192.168.0.6' PROCEDURE 'Createuser'

但我不知道该怎么办.

谢谢你的回答.

对于通配符,我理解像使用百分之类似于你所说的192.168.%或者像eggyal 192.168.0建议的那样.%
我这样做的问题和担忧是否有效?由于我的网络分布如下:

192.168.0.1 - router
192.168.0.2 - voip phone
192.168.0.3 - voip phone
192.168.0.4 - firewall
192.168.0.5 - Server 01
192.168.0.6 - Server 02
192.168.0.7 - sql Server
192.168.0.8 - LAN Printer
192.168.0.9 - First pc
192.168.0.10 - Second pc

我的问题是将IP从192.168.0.1保留到xxx.10保留,如果我在sql添加通配符可能与地址冲突我的意思是DEFINER尝试验证例如在voip电话或打印机或防火墙而不是两个服务器专属?

还有第二个问题,有可能列出多个IP更加整洁,如:

CREATE DEFINER=’localuser02’@’192.168.0.5,192.168.0.6’PROCEDURE’Createuser’

提前致谢

最佳答案
除非您还指定了sql SECURITY INVOKER,否则DEFINER子句控制在执行时使用的帐户.当您的代码当前已编写时,无论哪个用户在运行时执行代码,它都将在DEFINER中指定的安全上下文中执行.如果您需要为定义者指定更广泛的地址范围,请在主机部分中单独使用%,或使用类似192.168的内容.%
原文链接:https://www.f2er.com/mysql/433143.html

猜你在找的MySQL相关文章