QuickBI连接Maxcompute数据源展示不出数据库中的表,但是通过即席SQL又能查到

问题描述

QuickBI连接Maxcompute数据源,测试链接通过,在即席SQL中查询对应的表也可以正常执行,但是列表展示不出新建的表。

问题原因

配置Maxcompute数据源时输入的AccessKey ID、AccessKey Secret相关的用户没有LSIT和DESCRIBE权限。

解决方案

1.需要点击数据源模块的“同步”按钮,将Maxcompute数据源新建的表同步过来。

2.点击“同步”之后如果依然无法看到新建的表信息,可以考虑数据源配置的AccessKey ID、AccessKey Secret相关的用户可能没有LSIT和DESCRIBE权限。建议客户找Maxcompute管理员为相应用户配置LSIT和DESCRIBE权限。

3.需要说明的是:Maxcompute产品中grant语句一次只能将一张表的DESCRIBE权限赋给用户的。

grant Describe on Table $user_table_name to USER ALIYUN$bob@aliyun.com;

要将Maxcompute某个项目的所有表都赋给某个用户,需要先创建角色,再给角色配置DESCRIBE权限,然后给对应用户赋予该角色即可。

//1.自定义角色
create role describe_only_role

//2.为自定义角色describe_only_role对项目内所有表(包括未来项目内新建的表)赋予DESCRIBE权限
GRANT DESCRIBE ON table * TO Role describe_only_role privilegeproperties("policy" = "true");

//3.给用户赋予自定义角色权限(也可以在Dataworks的自定义角色web-ui界面里,添加某个成员到该自定义角色下)
grant role describe_only_role to RAM$account@company_name.com:ram_account01;

更多信息

Maxcompute用户及授权管理

适用于

  • QuickBI-数据源