为了更好的理解,SQL查询 中如何控制表权限、列权限、行权限、脱敏规则,写了几个示例进行说明。
信息 |
---|
1、3个选项必须要开启: ## 原生SQL数据集数据权限 ## 原生SQL数据集资源权限 ## 原生SQL数据集脱敏规则 2、具体设置项说明:可查看2、设置项具体说明:可查看SQL查询/数据集支持权限控制。 3、更改了设置项值,需要重新启动服务器才能生效。 |
为了方便讲解示例,先创建一个用户:VerifyUser 为了方便说明示例,先创建一个用户:VerifyUser 密码是1 ,角色:VeriyRole,再给VerifyUser 分配了角色:VeriyRole;如何创建用户、角色可查看:用户管理。
设置操作权限:
1
...
表权限:某个"表"没有查看、引用权限示例
信息 |
---|
如果登录的用户,表没有加载在 "数据库管理” 中,在SQL查询中执行时也会提示:没有权限。 |
1、创建了一个演示使用的northwind 库,并通过"数据库管理” ,选择”products“、”categories“、”orders“、”orderdetails“
...
2、使用admin(有权限的账号,这里为了演示说明用admin) 账号,给”products“设置资源授权;打开资源授权页面可以看到直接从父节点继承了权限,有一个EveryOne的角色,需要把它删除掉,删除操作方式如下:;打开资源授权页面可以看到直接从父节点继承了权限,有一个EveryOne的角色,需要把它删除掉,删除操作方式如下:
删除掉的效果,确保VerifyUser 或VeriyRole不在里面,即VerifyUser 、VeriyRole角色对”products“没有引用、查看权限:
删除掉的效果,确保VerifyUser 或VeriyRole不在里面,即VerifyUser 、VeriyRole角色对”products“没有引用、查看权限:
3、确认好权限之后,使用VerifyUser 用户登录,并去创建数据模型,添加 SQL查询,在SQL查询中,查询”products“表:
...
信息 |
---|
如果用户对表或者字段有 引用 权限,但是没有 查看 权限,如果需要控制不能查看数据,可以开启: 开启之后,”执行时“会抛出异常,但是能正常保存。 原因:是由于产品本身有 引用 权限就能查看数据,该控制项仅仅只是控制数据安全性,用户无法在 SQL查询 中随意输入表、字段 查找没有 查看 权限的数据。 |
2
...
列权限:表中字段没有引用、查看权限
1、基于示例1 添加的”categories“表,通过表的设置资源授权,确认”VerifyUser“用户否有引用、查看权限:,确认VerifyUser 用户否有引用、查看权限:
表有权限之后,再确认”categoryName“字段是否有引用、查看权限,如果有的话要把”VerifyUser“从列表中删除:
表有权限之后,再确认”categoryName“字段是否有引用、查看权限,如果有的话要把 VerifyUser 从列表中删除:
2、确认好权限之后,使用2、确认好权限之后,使用 VerifyUser 用户登录,使用去创建数据模型,添加 SQL查询,在SQL查询中查询”categories“表:
执行时:会提示对”categoryName“没有引用权限;但是可以保存成功。
保存成功之后,在数据模型预览或再报表层查看效果:
3 行权限:SQL查询继承源表设置的行权限
1、使用admin(有操作权限的账号即可,这里为了演示说明用admin) 账号登录,基于示例1 添加的”orders“表设置行权限,设置行权限,详情可查看:详情。
...
执行成功之后,可以看到VerifyUser 只能查看 华南 的数据:
在报表层也是一样:
4
...
继承脱敏规则:SQL查询继承源表"字段"设置的脱敏规则
1、使用admin(有操作权限的账号即可,这里为了演示说明用admin) 账号登录,基于示例1 添加的”orderdetails“表创建脱敏规则,脱敏规则创建,详情可查看:详情:
创建脱敏规则,需要选择数据源下面”Quantity“字段,设置脱敏算法为:*;并且应用范围,设置为用户 VerifyUser 适用于此范围,保存。
2、创建好脱敏规则之后,使用之后,使用 VerifyUser 用户登录,使用去创建数据模型,添加 SQL查询,在SQL查询中查询”orderdetails”表
...