起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1114|回复: 4

[结贴] 分配多条数据权限,系统如何处理

[复制链接]

10

主题

43

帖子

158

积分

初级会员

Rank: 2

积分
158
QQ
发表于 2015-11-30 16:49:05 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
本帖最后由 xplay 于 2015-11-30 17:02 编辑

BEX5 v3.2.1
设置了两个数据权限,1:只看自己的订单,2:可看所有下属的订单
当给主管同时赋予两个数据权限时,发现主管只能看自己的订单了。

一个用户/组织赋予多条数据权限时,好像系统用AND连接的? 而功能权限的话都是OR的关系,为什么呢?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-11-30 17:54:57 | 显示全部楼层
参考http://bbs.wex5.com/forum.php?mo ... 4&pid=165004035
执行的sql打印出来看看

在新建数据权限的时候选择功能了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

10

主题

43

帖子

158

积分

初级会员

Rank: 2

积分
158
QQ
 楼主| 发表于 2015-12-1 00:40:28 | 显示全部楼层
两个数据权限都是 AND(。。。)的写法,
打印SQL语句的结果:
主管同时赋予两个数据时:
  WHERE (MY_Order.FCREATORFID =  ? )  AND (SUBSTRING(MY_Order.FCREATORFID, ?, CHAR_LENGTH( ? )) =  ? )  AND (。。。)
只包含上述第2种数据权限(可看所有下属的订单)时:
  WHERE                                                          (SUBSTRING(MY_Order.FCREATORFID, ?, CHAR_LENGTH( ? )) =  ? )  AND (。。。)

当然只会出最小数据结果。
我希望两个数据权限都赋予一个人时,应该出:
  WHERE ( (MY_Order.FCREATORFID =  ? )  OR (SUBSTRING(MY_Order.FCREATORFID, ?, CHAR_LENGTH( ? )) =  ? )  ) AND (。。。)

需要如何处理呢?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-12-1 09:31:43 | 显示全部楼层
在定义数据权限的表达式,在前面加上OR看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

10

主题

43

帖子

158

积分

初级会员

Rank: 2

积分
158
QQ
 楼主| 发表于 2015-12-1 10:55:59 | 显示全部楼层
原来选择OR 就可以了!
这么说来,数据权限以AND连接的,相当于“黑名单”,以OR连接相当于“白名单”;
“黑名单”多条,范围越来越小;
“白名单”多条,范围越来越大!

可以结贴啦!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-5 12:08 , Processed in 0.105279 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表