gpt4 book ai didi

mysql - 在 MySQL VIEW 上运行 EXPLAIN 时出现权限错误

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:59 40 4
gpt4 key购买 nike

我有一个 view在 MySQL 5.0 数据库中定义为:

CREATE OR REPLACE ALGORITHM=MERGE 
DEFINER=db1_user@'%' SQL SECURITY DEFINER
VIEW db2.data_view AS SELECT * FROM db1.data_table;

这样做是为了让 db2 的用户能够访问 db1 中的这个单个表,并且适用于 SELECT 查询:

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

但是,当我尝试解释同一个查询时,我得到:

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

我为 db2 用户授予了 View 的 SHOW VIEW 权限,但是对于 EXPLAIN 我得到了同样的错误。

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

允许有权访问 View 的用户在其上运行 EXPLAIN 需要什么?

最佳答案

您正在尝试解释 不同于show create view 的查询.解释一个查询与选择它是一样的(从特权的角度来看),因此 select privilege足够了

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

关于mysql - 在 MySQL VIEW 上运行 EXPLAIN 时出现权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636182/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com