2***@qq.com
2***@qq.com
  • 发布:2020-12-24 13:36
  • 更新:2020-12-25 11:13
  • 阅读:586

【报Bug】DB Schema 权限设置好像不起作用

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

在DB Schema 更改read权限配置为等于或不等于

预期结果:

至少在某种情况下无权读取该表数据

实际结果:

各种情况下都能查询到数据

bug描述:

以下是我新建的一个表“gm_business”,

{  
  "bsonType": "object",  
  "required": [],  
  "permission": {  
    "read": "get(`database.uni-id-users.${auth.uid}`).bid!=doc.bid",  
    "create": false,  
    "update": false,  
    "delete": false  
  },  
  "properties": {  
    "_id": {  
      "description": "ID,系统自动生成"  
    },  
    "bno": {  
      "bsonType": "string",  
      "permission": {  
        "write": false  
      }  
    },  
    "bname": {  
      "bsonType": "string"  
    },  
    "linkman": {  
      "bsonType": "string"  
    },  
    "tel": {  
      "bsonType": "string"  
    },  
    "address": {  
      "bsonType": "string"  
    },  
    "enabled": {  
      "bsonType": "bool"  
    },  
    "cdate": {}  
  }  
}

我在“uni-id-users”表内新增了一个字段叫“bid”,这个“bid”就是“gm_business”表的“_id”,

permission中的read权限的设置,无论是
"read": "get(database.uni-id-users.${auth.uid}).bid==doc.bid"
还是
"read": "get(database.uni-id-users.${auth.uid}).bid!=doc.bid"
都不会生效,非admin用户登录后使用 uni-clientdb (where="" 或者 where="bid='xxxxx'"都试过)还是有权限可以查出数据

2020-12-24 13:36 负责人:DCloud_uniCloud_WYQ 分享
已邀请:
2***@qq.com

2***@qq.com (作者)

自顶一下~
顺便想确认下,权限规则中的doc到底是指我提交的参数对象还是数据库中的每条文档记录~

  • DCloud_uniCloud_WYQ

    可以理解成是数据库内的数据。你这是gm_business的schema,doc.bid应该换成doc._id

    2020-12-25 20:11

该问题目前已经被锁定, 无法添加新回复