角色与权限
普通用户使用报表,需要同时满足两层条件:用户拥有项目绑定的有效角色,并具有相应操作权限。项目角色决定能访问哪些项目,操作权限决定能查看、编辑、删除还是分配角色。
为项目分配角色
- 管理员先在系统管理中维护有效角色,为用户分配角色和所需菜单、操作权限。
- 新建项目时选择“项目访问角色”;已有项目在卡片右下角“更多(…)→ 分配角色”中修改。
- 在“分配项目角色”弹窗中选择允许访问的角色,点击“保存角色”。
- 使用相应普通用户重新打开项目列表,确认可见项目以及预览、编辑等操作范围。
普通用户创建项目时,至少绑定一个自己拥有的有效角色;绑定自己不拥有的角色还需分配角色权限。修改已有项目角色,需要项目访问权及查看、编辑、分配角色权限。
保存空角色集合会移除普通用户的项目访问权。角色显示“不在当前启用列表”时,应先由管理员核对该角色状态,再决定保留还是替换。
项目访问规则
| 情况 | 访问规则 |
|---|---|
| 普通用户 | 自身有效角色与项目绑定角色至少有一个相同,并具有对应操作权限 |
| 项目未绑定角色 | 仅特权用户可以访问,不是公开项目 |
| 停用、删除或失效角色 | 不能依靠原角色关联继续取得访问权 |
有效账号名为 admin | 具有完整项目操作权限 |
拥有有效且启用的固定角色 ID 1 | 具有完整项目操作权限,不按可修改的角色名称或编码判断 |
旧项目未绑定角色时,由特权用户补充角色配置。项目不再只按创建人限制访问,同一角色中的用户仍须分别满足操作权限要求。
这里的特权范围是项目操作;数据源、明文调试、加解密和密文查询仍有各自权限校验。
按岗位授权
| 岗位 | 通常需要的能力 |
|---|---|
| 报表查看人员 | 项目查看、密文查询执行、对应项目角色及相关菜单 |
| 报表设计人员 | 在查看能力基础上,按职责增加创建、编辑、发布;需要编写模板时再授予明文调试和加密 |
| 数据源管理员 | 数据源查看、创建、更新、测试;删除、明文调试和加解密按实际职责授予 |
| 项目授权管理人员 | 项目查看、编辑、分配角色及目标项目访问权 |
普通查看人员无需明文查询、加密或解密权限。数据库账号的只读权限由数据库维护人员单独设置,不由项目角色代替。
权限点速查
以下标识供系统管理员配置菜单和按钮权限时核对。
| 功能 | 权限点 |
|---|---|
| 数据源列表和详情 | report:data-source:query |
| 创建数据源 | report:data-source:create |
| 更新数据源 | report:data-source:update |
| 删除数据源 | report:data-source:delete |
| 测试连接 | report:data-source:test |
| 明文查询调试 | report:data-source:query-data |
| 查询模板加密 | report:query-crypto:encrypt |
| 查询模板解密 | report:query-crypto:decrypt |
| GoView 密文查询执行 | report:data-query:execute |
| 创建项目 | report:go-view-project:create |
| 查看项目及预览 | report:go-view-project:query |
| 编辑、保存与调整发布状态 | report:go-view-project:update |
| 删除项目 | report:go-view-project:delete |
| 分配项目角色 | report:go-view-project:assign-role |
后端仍会检查权限,不能通过手动输入页面地址绕过授权。授予项目操作点后,也要配置项目角色;仅有菜单不代表能够执行查询。
撤销访问的影响
移除项目角色会影响后续项目列表、内容读取、编辑和预览授权,但不会收回已经读取到浏览器的数据。
查询密文目前绑定租户、数据源和查询规则,没有绑定某个 GoView 项目。持有有效密文且仍具有全局查询执行权限的用户,可能继续执行独立查询;不能将移除项目角色、取消发布或删除项目视为密文失效操作。
如果需要停止这类查询,应由管理员同时评估查询执行权限及数据源状态。撤销全局查询权限或停用数据源会影响其他报表,须先确认影响范围。