页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

1 概述

  从安全角度上,产品正在逐步收紧权限的漏洞,尽可能避免出现的数据安全性问题。

信息

1、该扩展包目前是内置在产品中的,需要开启选择才能正常使用!

2、开启了扩展包,SQL 解析会消耗一定的时间,可能会存在性能问题。

3、该扩展包目前还在持续完善中。

2 开启功能

从安全角度上,产品正在逐步完善数据权限控制,避免出现数据安全性问题。

2  功能说明

1、在系统运维(运维设置) /系统选项/ 高级设置 增加了下面的设置项:

序号选项内容
1RAW_SQL_APPLY_MASKING_RULE
如果在源表设置了脱敏规则,通过原生SQL数据集、SQL查询等方式取数,如果开启了该项,能正常继承到对应的脱敏规则,从而对数据进行脱敏处理;

如果在源表设置了脱敏规则,通过原生SQL数据集、SQL查询等方式取数,如果开启了该项,能正常继承到对应的脱敏规则,从而对数据进行脱敏处理。

系统系统默认false,即不开启(不生效);设置成true,则是开启。

2

RAW_SQL_APPLY_ROW_PERMISSIONS

如果在源表设置了行权限,通过原生SQL数据集、SQL查询等方式取数,并且开启了该设置项,能正常继承到源表的行权限,从而控住数据的泄露;

 系统系统默认false,即不开启(不生效);设置成true,则是开启。

3RAW_SQL_APPLY_ROW_PERMISSIONS_CHECK_TABLE

如果在源表设置了资源权限(表或列权限),通过原生SQL数据集、SQL查询等方式取数,如果开启了该项,能正常继承到对应的资源权限,从而对数据进行控制;

原生SQL数据集资源权限;系统系统默认false,即不开启(不生效);设置成true,则是开启。

...


警告
title前提条件

1、以上3个选项需要全部开启,目前是有依赖关系,即全部设置成true才能完全控制表权限、行权限、列权限、脱敏规则生效,另外,要将前面的##去掉。

2、开启了这些选项,如果查询没有权限的表或该表在数据库中看不到,登录的用户也是无法查询该表的!


4RAW_SQL_APPLY_REFS_REQUIRE_READ_PURVIEW

为了引起不必要的解释,建议不要开,不要开!

如果用户对表或者字段有 引用 权限,但是没有 查看 权限,如果需要控制不能查看数据,可以开启:

开启之后,”执行时“会抛出异常,但是能正常保存。
Image Added

原因:是由于产品本身有 引用 权限就能查看数据,该控制项仅仅只是控制数据安全性,用户无法在 SQL查询 中随意输入表、字段 查找没有 查看 权限的数据。


2、以下是关于功能是否控住的说明:

  •  代表能控住,X 代表暂时还不行。
功能项       是否控住
序号类型数据行权限表和列资源权限脱敏规则
3
1原生SQL数据集
  •   
  •   
  •   
4
2SQL数据集
  •   
  •   
  •   
5
3
数据模型的SQL查询
数据模型的【SQL查询】
  •   
  •   
  •   
6
4参数的备选值、默认值(SQL查询)

(公共设置的参数+模型参数+模型查询参数+电子表格的参数管理
  •   
  •   
  •   
7
5用户属性的 SQL【表达式】
  •   
  •   
  •   
8
6转换规则 的SQL【表达式】
  •   
  •   
  •   
9ETL 的【SQL脚本】XXX10ETL的【Python脚本】
7ETL 的 【关系数据源】ETL 的【数据查询】
  •   
  •   
  •   
8ETL的【Spark SQL脚本】XXX
11
9
作业流的【源库SQL脚本】
ETL的【Python脚本】XXX
12
10计划任务XXX
13
11业务主题的业务属性、计算字段XXX
14
12即席、透视分析的计算字段XXX
15
13自助数据集的计算字段XXX
16
14(旧)
数据集的告警
数据集的告警XXX

基于原生SQL查询、SQL数据集等创建的报表也会继承权限限制,在报表层会有相应的提示。3、目前存在较大的限制,有较多的情况是无法兼容

注意

以上只对V10.5.15以上版本生效~


3 说明示例

可查看:SQL查询控制数据示例


4、目前存在一些限制,以下情况还不兼容

警告
Select

1、Select a.* 使用通配符进行查询时,解析器可以从当前 Smartbi 的基础表信息中获取,但是当使用到没有添加到 Smartbi 中的表时,会无法进行判断导致出现问题;并且由于数据库返回的顺序未必与 Smartbi 中记录的顺序必定一致,所以也可能存在错乱的问题

多条

2、多条 SQL 语句: 由于在 SQL 中是可以使用临时表等方式,在多条 SQL 语句下的逻辑会变得非常复杂,目前还没考虑这种场景。

复杂

3、复杂 SQL 语句 :只能保证基本语法检测,但是对于部分数据库而言可以拼接字符串后再执行,这种用法也是无法处理的。