mysql - 使用 SQLyog 导出 MySQL 所有数据库会产生调用者/定义者权限错误

标签 mysql sqlyog

我们有一个使用 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/

相关文章:

javascript - 每 x 小时/天存储/保存数据库值并将其显示为图表 - 收集统计数据

SQL:计算每列中不同值的数量

mysql - 外键作为主键

mysql - 从查询中获取不平衡的行

mysql - 如何使用生成的脚本从SQL 2005到MYSQL?

sql - 是否有一种[直接的] 方式来使用 SQL 对结果进行排序 *首先*,*然后* 按另一列分组?

php - SQL从两个表中选择行,其中一列是公共(public)的,但另一列可能为空

mysql - 如何在 SQLyog 中传输数据库?

mysql - 更改 IP 地址后由于 DEFINER 错误无法更改 MySQL 功能

python - 如何允许 django 管理员将字段设置为 NULL?