什么是错误 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】:您是否检查过基础TABLE2
和Person
表的授权?您可以授予视图上所需的所有选择权限,但如果阻止用户访问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)?的主要内容,如果未能解决你的问题,请参考以下文章
mysqldump 导出view报错1356,对象无效或者没权限
ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or def