我使用SQLyog在正在开发的远程MySQL数据库中编写存储过程和函数。该数据库只有一个用户名/密码,它通过我用Delphi编写的前端可执行应用程序访问。数十个不同的人都使用相同的用户名。
当我使用SQLYog编写存储过程时,例如,
CREATE PROCEDURE age_frequency_count(IN bin_size INT)
生成的过程会将定义者放入其中,无论我是否喜欢,这将导致...
CREATE DEFINER=<the_user_name>@<my_IP_address> PROCEDURE age_frequency_count(IN bin_size INT)
我认为这是由MySQL而不是SQLYog DBMS完成的。(我认为这是由MySQL而不是SQLYog DBMS完成的。)
从文档和Stack Overflow上的帖子中了解到,definer用于指定执行或更改过程所需的权限以及允许过程执行什么操作,但我还是有些困惑,希望能得到澄清。
问题:
如果我的IP地址在定义者中,其他人是否仍然可以从不同的IP地址登录并执行该过程(尽管使用相同的用户名)?
请问有谁能够澄清一下定义者的作用?也就是说,连接到我的IP地址可以做什么,而其他IP地址的连接则不能?