我已经创建了一个运行在CentOS Web服务器上的内部网站应用程序,该应用程序使用另一台本地服务器(始终是CentOS)作为MySQL数据库。
在数据库中,我创建了类似于以下内容的常规操作:
我的问题是,如果我在SQL中添加通配符并保留IP地址从192.168.0.1到xxx.10,是否会与地址发生冲突,我的意思是DEFINER会尝试验证例如voip电话、打印机或防火墙,而不是仅限于两个服务器?
另外第二个问题是,是否有可能列出多个IP以使其更整洁,例如:
在数据库中,我创建了类似于以下内容的常规操作:
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
我的问题是,如果我在SQL中添加通配符并保留IP地址从192.168.0.1到xxx.10,是否会与地址发生冲突,我的意思是DEFINER会尝试验证例如voip电话、打印机或防火墙,而不是仅限于两个服务器?
另外第二个问题是,是否有可能列出多个IP以使其更整洁,例如:
CREATE DEFINER='localuser02'@'192.168.0.5, 192.168.0.6' PROCEDURE 'Createuser'
提前致谢。
DEFINER
简单地指“拥有”该存储过程的用户;如果使用SQL SECURITY DEFINER
定义了该存储过程,则不论调用者是谁,它都将以该帐户权限运行。DEFINER
凭据应与有效的用户帐户匹配,其主机部分指示用户可以连接的机器。因此,在这种情况下,没有特定的需要更改DEFINER
;但是,如果您希望启用localuser02
帐户从任何机器连接,可以更改其凭据以使用通配符:@'192.168.0.%'
。 - eggyal