第4页,共187页。 显示 1,869 条结果 (0.025 秒)
SQL查询/数据集支持权限控制
1 概述 从安全角度上,产品正在逐步完善数据权限控制,避免出现数据安全性问题。 2 功能说明 1、在系统运维(运维设置) /系统选项/ 高级设置 增加了下面的设置项: 序号 选项 内容 1 RAW_SQL_APPLY_MASKING_RULE 如果在源表设置了脱敏规则,通过原生SQL数据集、SQL查询等方式取数,如果开启了该项,能正常继承到对应的脱敏规则,从而对数据进行脱敏处理。 系统系统默认false,即不开启(不生效);设置成true,则是开启。 2 RAW_SQL_APPLY_ROW_PERMISSIONS 如果在源表设置了行权限,通过原生SQL数据集、SQL查询等方式数据模型sql查询实现数据权限,资源权限和脱敏规则的控制
参数为true,并重启才可生效。注:该功能项默认不开启。 ## 原生SQL数据集脱敏规则 ## 原生SQL数据集脱敏规则,系统默认值false RAW_SQL_APPLY_MASKING_RULE=true ## 原生SQL数据集数据权限 ## 原生SQL数据集数据权限 ,系统默认值false RAW_SQL_APPLY_ROW_PERMISSIONS=true ## 原生SQL数据集资源权限 ## 原生SQL数据集资源权限,系统默认值false RAW_SQL_APPLY_ROW_PERMISSIONS_CHECK_TABLE=true 前提:在资源权限和脱敏规则已配置好的前提下验证!(资源权限如常规方式配置SQL查询控制数据示例
为了更好的理解,SQL查询 中如何控制表权限、列权限、行权限、脱敏规则,写了几个示例进行说明。 1、3个选项必须要开启: ## 原生SQL数据集数据权限 ## 原生SQL数据集数据权限 ,系统默认值false RAW_SQL_APPLY_ROW_PERMISSIONS=true ## 原生SQL数据集资源权限 ## 原生SQL数据集资源权限,系统默认值false RAW_SQL_APPLY_ROW_PERMISSIONS_CHECK_TABLE=true ## 原生SQL数据集脱敏规则 ## 原生SQL数据集脱敏规则,系统默认值false RAW_SQL_APPLY_MASKING_RULE=true 2数据快查中可以查看SQL定义
。 参考资料:【升级注意事项】V8.5➜V10.1 image2025-3-28_14-26-52.png 2.功能说明 在数据集中,“数据快查”增加“SQL定义”页,可以查看SQL的定义。 生效资源:SQL数据集、原生SQL数据集 权限要求:具有“查看”资源权限以上 使用说明:只能查看SQL的定义,无法进行 … ://wiki.smartbi.com.cn/pages/viewpage.action?pageId=111890412 更新扩展包之前,请做好知识库以及扩展包的备份。 3.2.展示效果 1)在“数据准备”中,对“SQL数据集”或者“原生SQL数据集”,点击鼠标右键,选择“数据快查”选项如何找SQL看数据不对问题(旧数据集)
报表,以及数据模型开发的报表。那接下来我们一个个来看。 旧数据集篇 何为旧数据集呢?一说老朋友们估计就知道了,其实就是数据集家族们:原生SQL数据集、SQL数据集、可视化数据集、自助数据集、存储过程数据集、Java数据集、多维数据集、即席查询(旧)、透视分析(旧),统称为旧数据集。 PS:即席查询(旧)、透视分析(旧),是两个特殊的数据集,它既可以作为数据集,用于做电子表格报表,也可以分析展现层面直接作为报表数据,不得不说,真是面面俱到的好牛马。 就目前来说,大部分旧数据集中常用的基本还是原生SQL数据集、SQL数据集、可视化数据集、自助数据集。就这几种类型,外加即席查询、透视分析,那排查数据不对就比较简单了,主要就是看看SQL查询 的order by不起作用
(本文档仅供参考) 问题说明 我在制作报表时,SQL查询的 order by排序不起作用,请问如何解决,复制SQL在原生SQL查询中排序生效,这是为什么? 解决方案 此现象是正常的,因为SQL查询需要嵌套运行。如文本语句select distinct … :19.png 或者使用原生SQL查询制作报表,原生SQL查询是直接将SQL语句通过jdbc驱动发送给数据库,不做二次处理。 关于各类查询的介绍可参考wiki文档:数据集定义 https://history.wiki.smartbi.com.cn/pagesSQL server 获取总行数报错
(本文仅供参考) 问题说明 在项目实施中有可能会遇到再数据库中可以运行的SQL语句,使用smartbi的原生SQL 会报获取总行数错误。 解析 对于获取总行数报错的需要确认如下信息, 第一种:查看编写的SQL查询是否包含 order by,在smartbi中获取总行数,相当于外面包了一层,SQL Server嵌套不允许用order by 第二种:没有使用order by 语句,那就看具体错误日志信息判定问题解决方法。 针对第一种情况,有如下两种解决办法: 1、设置禁止获取总行数。在 定制管理 > 系统运维 > 系统内置IF函数实现动态SQL拼接
(文档仅供参考) 使用场景 使用IF函数来实现动态的SQL拼接 使用入口 入口.png 一般可以通过如下入口找到:函数列表->系统函数->逻辑函数->IF 使用方式 基本格式:IF('条件','true结果'[,'false结果']) 支持IF函数的嵌套,比如:IF('条件',IF('条件','true结果','false结果'),'false结果') 支持常见的关系运算符>、>=、==、<、<=、!= 示例 在数据集中使用IF函数去拼接where条件 拼接where条件.png 在用户属性中使用IF函数 用户属性使用示例.png 支持范围 范围 是否支持 原生sql数据集SQL注释-支持/*注释信息*/
(本文档仅供参考) 问题说明 为什么有时候在sql查询或者原生sql查询中,使用了注释(--),在smartbi可能会报错,如oracle数据库可能会提示ORA-00936:缺失表达式,放在数据库工具是正常的。 image2018-11-26 15:58:16.png 解决方案 目前产品的SQL查询和原生SQL查询是 不支持“–注释信息”, -- 的方式只是某些数据库工具上适用的注释方式; 通常情况在Smartbi中不建议添加注释,如果必须要保留注释,建议使用 /*注释信息*/ 的写法进行注释(如下图所示sql查询异常user lacks privilege or object not found
(本文档仅供参考) 问题描述 客户使用原生sql查询输入测试数据正常,添加复杂的sql就会一直报如下错误。 image2024-7-12_15-13-4.png 解决方案: 发现测试正常,生产数据异常只有别名不一样。经确认是由于别名字段太长造成的。修改输出表头正常了。 image2024-7-12_15-18-24.png