mariadb过程和函数特权

v1l68za4  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(269)

大家好,我不知道该怎么办了。我已将数据库远程导入服务器。
所以这是我的程序,我有一个定义db_hrmis@127.0.0.1:

DELIMITER //
CREATE DEFINER=`db_hrmis`@`127.0.0.1` PROCEDURE `proce_give_employee_leave_credits`()
BEGIN
UPDATE inf_employee_leaves lv SET lv.earnings = (lv.leaveMinutesPerMonth + lv.earnings), lv.allowedLeaveInMinutes = ((lv.noOfDays - (CONVERT((lv.earnings/480), DECIMAL(10,2)))) * 480), lv.noOfDays = CONVERT((lv.allowedLeaveInMinutes / 480), DECIMAL(10,2)) WHERE MONTH(lv.lastUpdated) <> MONTH(CURDATE());
END//
DELIMITER ;

因为我远程访问它,我也从我的服务器上创建了一个数据库用户(例如。db_hrmis@myipaddress). 问题是在导入过程之后,定义者改变了,我不能改变我的过程,当我尝试导出它时,mysql dump只显示如下

DELIMITER //
END//
DELIMITER ;

空结构,我试图授予权限(执行,创建例程,改变例程),但似乎没有任何工作。
以下是其当前状态的截图。

如您所见,定义者没有声明127.0.0.1,我有“您对此例程没有权限”的问题,如果是权限问题,我应该授予用户什么权限?
非常感谢你的帮助。

ryhaxcpt

ryhaxcpt1#

这可能是因为mysql用户对您的\u db.table上的特定sp没有执行权限。
你能把你的作品贴出来吗 # mysql> show grants for <your user>; 或者,您可以在授予该特定用户在所有数据库上的完全权限后运行过程来确认这一点。


# mysql> grant all privileges on *.* to 'user'@'host';

# mysql> flush privileges;

相关问题