MariaDB过程和函数权限

时间:2018-04-16 10:03:20

标签: mysql centos mariadb

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

所以这是我的程序,我有一个定义器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 ;

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

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

正如你所看到的,定义器没有说明127.0.0.1而且我有#34;你对这个例程没有特权&#34;问题,如果是特权问题,我应该授予用户什么特权?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

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

的输出

否则,您可以在为所有数据库上的特定用户授予完全权限后,通过运行程序来确认这一点。

final ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();