什么是错误 mysql (#1356)?

Posted

技术标签:

【中文标题】什么是错误 mysql (#1356)?【英文标题】:What is error mysql (#1356)? 【发布时间】:2011-05-30 19:46:54 【问题描述】:

我创建一个视图:

CREATE OR REPLACE VIEW AuthorizationTrainer AS 
  SELECT Person.id, Person.login as nick, Person.password as pass 
  FROM TABLE2,Person 
  WHERE TABLE2.id_Person = Person.id

然后创建授权:

GRANT SELECT ON Teachprog.AuthorizationTrainer TO 'Trener'@'%'

SELECT id,nick FROM AuthorizationTrainer - 有效

SELECT id,nick,pass FROM AuthorizationTrainer - 产生错误:

fly 错误:#1356 - 查看 'Teachprog.AuthorizationTrainer' 引用无效表或 列或函数或视图的定义者/调用者没有使用它们的权利

【问题讨论】:

【参考方案1】:

您是否检查过基础TABLE2Person 表的授权?您可以授予视图上所需的所有选择权限,但如果阻止用户访问Person 中的pass 字段,您将收到此错误。检查:

show grants for trener@%  

【讨论】:

Person和Table2有权限选择【参考方案2】:

授予用户培训师选择表的权限。您只授予查看权限。

grant select on Teachprog.TABLE2,Person to 'Trener'@'%' ;

grant select on Teachprog.Person to 'Trener'@'%' ;

【讨论】:

以上是关于什么是错误 mysql (#1356)?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL备份1356错误提示修复办法

mysqldump 导出view报错1356,对象无效或者没权限

MySQL ERROR 1356 (HY000)

MySQL ERROR 1356 (HY000)

ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or def

MySQL5.7 使用 mysqldump 重要闭坑事项