目标:匿名(不需要登录)即可访问superset图表(我的环境是在docker中)
一,superset角色介绍
角色权限介绍
Admin:拥有所有权限。
Alpha:能访问所有数据源,增加或者更改数据源,但不能给更改其他用户权限。
Gamma:必须结合其他能访问数据源的角色才能访问数据。这个角色所能访问的切片和看板,也是基于能访问数据源所创建的切片和看板。
sql_lab:能访问SQL Lab菜单。
Public:默认没有任何权限。
二、具体实现
1.最终目标:使grama和public权限一致(默认public没有任何权限);
方法一:修改config.py中的配置 PUBLIC_ROLE_LIKE_GAMMA = True ,然后执行superset init命令
方法二:手工在 superset页面左上角 “用户权限-角色列表”中修改public,使其和grama一样;
方法三:如果熟悉superset元数据表结构,直接sql命令修改
本次操作采用的方法一,具体情况:我的superset在10.10.10.208上的docker中。操作步骤
a、root进入10.10.10.208,docker ps -a 记住容器ID和容器名
b、进入superset的docker,找到config.py文件
docker exec -it --user root 156e13ff85e3 /bin/bash
c、编辑config.py。默认docker中没有vi或者vim,可以安装vi(vim)或者将文件拷贝到宿主机,我采用了后者
//docker cp 容器名:容器中文件 宿主机要存放文件的位置
docker cp superset:/usr/local/lib/python3.6/site-packages/superset/config.py .
d、宿主机编辑config.py,再将文件放回docker
docker cp config.py superset:/usr/local/lib/python3.6/site-packages/superset/config.py
e、docker中执行superset init。在浏览器上可以看到public和grama权限一致
2.将匿名用户所需要的数据库和表分配给public(本文将所有库表权限都给到public),下图为public角色添加的库表权限
3.验收
在浏览器新tab打开创建的superset,不需要登录就可以看到;