【发布时间】:2020-03-07 07:33:24
【问题描述】:
在共享主机服务器上托管的 MySQL 数据库中创建存储过程时,会自动添加该过程的定义器:
CREATE DEFINER=teq_user1@My IP Address程序dpr_tax(在...
这限制了仅从该 IP 调用此过程。
我们需要允许某些用户调用这个过程,而不管 IP。
我试过了:
授予执行程序 teq_acc.dpr_tax TO 'teq_user1'@'%';
和
授予执行程序 teq_acc.dpr_tax 到 'teq_user1'@'localhost';
但收到以下错误:
授予命令拒绝用户 'teq_user1'@'我的 IP 地址'
【问题讨论】:
-
我认为您正在寻找
DEFINER = CURRENT_USER...然后您可以或多或少简单地将 EXECUTE priv 授予可以使用它的 MySQL 用户.. 但不能 100% 确定我不确定你是如何使用这个的.. -
@RaymondNijland ,感谢您的支持,问题不是用户而是IP。它专用于用户,但应该来自特定 IP,我无法授予
user@%权限,因为我在共享环境中。 -
打开 MySQL 或允许来自 Internet 上的任何 IP 的连接,无论如何,这是您正在寻找的一个坏主意。您需要某种网关(基于套接字或 Web 服务),它位于您的应用程序和 MySQL 服务器..
-
@RaymondNijland .. 这可以通过 SSH 或其他方式完成吗?
标签: mysql stored-procedures shared-hosting