2014-10-29 3 views
0

나는이 같은 5.0 데이터베이스에 정의 된 view :권한 오류 실행중인 MySQL을보기에 EXPLAIN

CREATE OR REPLACE ALGORITHM=MERGE 
[email protected]'%' SQL SECURITY DEFINER 
VIEW db2.data_view AS SELECT * FROM db1.data_table; 

이 DB1이 하나의 테이블에 DB2 액세스를 사용자에게 제공하기 위해 수행하고, SELECT 쿼리 작동합니다 : 나는 시도하고 동일한 쿼리를 설명 할 때

[[email protected]]> select name from data_view limit 1; 
+----------------+ 
| name   | 
+----------------+ 
| slartibartfast | 
+----------------+ 
1 row in set (0.00 sec) 

그러나, 내가 얻을 :

[[email protected]]> explain select name from data_view limit 1; 
ERROR 1345 (HY000): EXPLAIN/SHOW can not be issued; lacking privileges for 
underlying table 

DB2 사용자에게 뷰에 대한 SHOW VIEW 특권을 부여했지만 EXPLAIN에 대해 동일한 오류가 발생합니다.

GRANT SHOW VIEW ON `db2`.`data_view` TO 'db2_user'@'%'; 

뷰에 액세스 할 수있는 사용자가 EXPLAIN을 실행하는 데 필요한 것은 무엇입니까?

답변

1

과 다른 쿼리 explain을 시도하고 있습니다. 쿼리를 설명하는 것은, 그러므로 selectprivilege 여기에 행동이 설명 된 바와 같이, 5.0과 5.5 사이에 변경 한 것으로 나타은

GRANT select, SHOW VIEW ON `db2`.`data_view` TO 'db2_user'@'%'; 
explain select name from data_view limit 1; 
+0

응답 해 주셔서 감사합니다. 불행히도 문제가 해결되지 않습니다 - 나는 같은 오류가 나타납니다. – tcarobruce

+0

mysql에서 질의를 "설명"하는 특별한 권한 옵션이 없기를 두려워합니다. 그렇다면 사용자에게 모든 옵션을 부여하더라도 오류가 발생합니까? – Payam

1

참고 충분히해야한다 (보기 권한이 지점에서 이야기)를 선택하는 것과 동일 MySQL bug 64198.