我们有一个使用 SQLyog 导出所有数据库(包括 mysql)的工作,这个工作每晚运行。最近,我们添加了一个使用函数的 View :
SELECT
ps.SubmissionDate SubmissionDate,
ps.TransactionNo,
ps.FormNumber
FROM
premier_submissions ps
UNION
SELECT
psh.LastSubmissionDate SubmissionDate,
psh.TransactionNo,
psh.FormNumber
FROM
premier_submissionhistory psh
UNION
SELECT
SPLIT_STR (ps.SubmissionDates, '*', 1) SubmissionDate,
ps.TransactionNo,
ps.FormNumber
FROM
premier_submissions ps
UNION
SELECT
SPLIT_STR (psh.ResubmissionDates, '*', 1) SubmissionDate,
psh.TransactionNo,
psh.FormNumber
FROM
premier_submissionhistory psh
现在当这个导出作业运行时,我们得到这个错误:
"View 'pride.charges_by_submission_date' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them"
函数 SPLIT_STR 不是新函数,可以很好地导出。更奇怪的是,我可以创建一个仅导出此 View 和函数的作业,并且工作正常。只有当我导出所有内容并且一致时,该作业才会失败 - 每次都会发生错误。是的,我已经检查了进行备份的帐户的权限。我在 SQLyog 论坛上发帖,但没有得到任何回应。
最佳答案
问题是用户有 SELECT 权限,允许将函数导出表,但没有 EXECUTE 权限,这显然是导出使用函数的 View 所必需的。
关于mysql - 使用 SQLyog 导出 MySQL 所有数据库会产生调用者/定义者权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34722219/