AWS DynamoDB 查询不显示用户数据,除非具有管理员权限

Posted

技术标签:

【中文标题】AWS DynamoDB 查询不显示用户数据,除非具有管理员权限【英文标题】:AWS DynamoDB Queries Not Showing user data unless with Admin privileges 【发布时间】:2021-11-18 04:31:48 【问题描述】:

我目前无法以普通用户的身份查询 DynamoDB 来获取用户自己的详细信息。值得注意的是,当给予管理员权限时,用户可以按预期执行查询和工作;所以这不是数据的问题,而是用户的权限问题。

我认为问题是由于 graphQL 中“所有者”属性的性质和我的身份验证方式(即电子邮件和密码)而引起的。我相信“所有者”属性可能只适用于用户名和密码,但我找不到任何支持这一点的文档,所以它是在黑暗中刺伤。有没有人知道为什么用户无法收到自己的数据?

查询:

管理员权限:

Schema.graphql:

type User @model 
@auth(rules: [
allow: groups, groups: ["Admin"] ,
allow: owner, ownerField: "username", operations: [read]
])

  id: ID!
  email: String!


【问题讨论】:

【参考方案1】:

将所有者字段“用户名”替换为“id”

type User @model 
@auth(rules: [
allow: groups, groups: ["Admin"] ,
allow: owner, ownerField: "id", operations: [read]
])

  id: ID!
  email: String!

【讨论】:

以上是关于AWS DynamoDB 查询不显示用户数据,除非具有管理员权限的主要内容,如果未能解决你的问题,请参考以下文章

带有键条件表达式的 AWS DynamoDB 查询出错:不支持查询键条件

[AWS][Nosql]DynamoDB动手实验101

AWS IoT DynamoDB创建规则

AWS DynamoDB 之间的查询错误

在 DynamoDB 中保存 AWS Cognito 用户

AWS SDK Dynamodb对具有加密数据的二级索引的查询操作