什么是错误mysql(#1356)?

时间:2010-12-26 09:55:30

标签: sql mysql grant

我创建了一个视图:

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 - 产生错误:

  

飞行错误:#1356 - 查看'Teachprog.AuthorizationTrainer'引用无效表格或            列或功能或定义者/调查者缺乏使用它们的权利

2 个答案:

答案 0 :(得分:1)

您是否检查了基础TABLE2Person表格上的拨款?您可以在视图上授予所需的所有选择权限,但如果阻止用户访问pass中的Person字段,则会出现此错误。检查:

show grants for trener@%  

答案 1 :(得分:0)

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

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

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