gpt4 book ai didi

mysql - MariaDB 过程和函数权限

转载 作者:行者123 更新时间:2023-11-29 17:44:30 25 4
gpt4 key购买 nike

大家好,我不知道该怎么办了。我已将数据库远程导入到服务器。

这是我的程序,我有一个定义者 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转储仅显示这样的

DELIMITER //
END//
DELIMITER ;

空结构,我尝试授予权限(执行、创建例程、更改例程),但似乎没有任何效果。

这是其当前状态的屏幕截图。 enter image description here

如您所见,定义者没有声明 127.0.0.1,并且我遇到“您没有此例程的特权”问题,如果是特权问题,我应该授予用户什么特权?

非常感谢您的帮助。

最佳答案

可能是因为 mysql 用户对 your_db.table 上的特定 sp 没有执行权限。

能否请您发布 # mysql> show grants for <your user>; 的输出

或者,您可以在授予该特定用户对所有数据库的完全权限后运行过程来确认这一点。

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

关于mysql - MariaDB 过程和函数权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49854580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com