收藏
回答

云开发数据库安全规则相关问题?

请问我下面的规则是哪里出了问题,一直报 errMsg: Permission denied

我想为order集合设定可以允许管理员和用户自己访问的规则,下面是order集合的规则

{
"read": "doc._openid == auth.openid || get(`database.manager.${auth.openid}`).isManager == true",
"write": "doc._openid == auth.openid || get(`database.manager.${auth.openid}`).isManager == true"
}

这是manager集合的结构

这是manager集合的规则

{
"read": true,
"write": "doc._openid == auth.openid"
}
最后一次编辑于  01-12
回答关注问题邀请回答
收藏

2 个回答

  • CNSA
    CNSA
    01-13

    也不知道问题出在哪里了,反正 用下面的方法解决了:

    {
    "read": "doc._openid == auth.openid || auth.openid in get(`database.manager.ce805e785f******0f1559`).managers",
    "write": "doc._openid == auth.openid || auth.openid in get(`database.manager.ce805e785f******10f1559`).managers"
    }
    


    其中“ce805e785f******0f1559”为 manager集合的索引_id


    01-13
    有用 1
    回复 1
    • 奇
      03-12
      你好,那么这个查询条件 where({    })内容怎么写呢,因为where里面要传入 _openid 啊。
      03-12
      回复
  • 吃包子不吐包子皮
    吃包子不吐包子皮
    02-25
    get(`database.manager.xxx`)
    get 函数是查找 manager 集合下 _id 为 xxx 的数据 所以传入 auth.openid 找不到对应的数据,要使用ce8xxxxx
    
    02-25
    有用
    回复
登录 后发表内容
问题标签