我有一個MySQL 5.0數據庫定義爲view:權限錯誤運行EXPLAIN對MySQL視圖
CREATE OR REPLACE ALGORITHM=MERGE
[email protected]'%' SQL SECURITY DEFINER
VIEW db2.data_view AS SELECT * FROM db1.data_table;
這是做給的DB2訪問到DB1這單表的用戶,並適用於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
?
感謝您的回覆。不幸的是,它不能解決問題 - 我看到了同樣的錯誤。 – tcarobruce 2014-11-04 23:23:18
恐怕沒有特定的授權選項來「解釋」mysql中的查詢。那麼即使您將所有選項授予用戶,您是否也會遇到該錯誤? – Payam 2014-11-05 23:35:21