Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在mongo数据库中定义用户角色的好方法是什么_Java_Mongodb_User Roles - Fatal编程技术网

Java 在mongo数据库中定义用户角色的好方法是什么

Java 在mongo数据库中定义用户角色的好方法是什么,java,mongodb,user-roles,Java,Mongodb,User Roles,来自关系数据库的背景,我发现很容易将用户及其角色分解为规范化的表。但在mongo数据库中执行此操作的惯用方法是什么 我有 ({ "roles" : [ {"role": "user"}, {"role": "manager"}, {"role": "admin"} ] "privileges" : [ {"privilege": "READ"}, {"privilege": "

来自关系数据库的背景,我发现很容易将用户及其角色分解为规范化的表。但在mongo数据库中执行此操作的惯用方法是什么

我有

({    "roles" :
    [
        {"role": "user"},
        {"role": "manager"},
        {"role": "admin"}
    ]

    "privileges" :
    [
        {"privilege": "READ"},
        {"privilege": "READ/WRITE"},
        {"privilege": "ALL"}
    ] 

    "users" :
    [
        {"user": "Sammy"},
        {"user": "Tom"},
        {"user": "Fred"},
        {"user": "Zack"}
    ]

    "userPermissions" :
    [
        {"admin": "Sammy"},
        {"manager": "Tom"},
        {"user": "Fred"},
        {"user": "Zack"}
    ]
})

问:这是在Mongo中为用户角色建模的合适方法吗?

如果您的角色是纯字符串或基本元组,则可以将它们作为数组存储在每个用户的文档中。如果角色是复杂实体,则可以将其存储为文档引用数组

更新:

这是我的userAccount集合中的一个文档,由Spring Security核心Grails插件生成:


Spring Security及其子代是java中的标准安全实现,因此…

Mongo DB用户角色被定义为JSON文档。请尝试以下链接


这是有效的JSON吗?它以前不是,现在仍然不是。现在我看不到用户的角色,这样更好。现在在所有{}的周围添加一个根对象,您就拥有了有效的JSON:@LutzHorn,谢谢。JSON并不是我所关心的,尽管我把它扼杀了:但这是mongo的合适方法吗?mongo开发人员通常是这样分解数据库中的用户角色的吗?那么,这种权限又与什么联系在一起呢。我怎么才能知道其他选项是什么呢?权限映射到UserAccount域类的同名属性,它表示一个权限类数组
{
  "_id" : "541fdfdebaacef69047415a8",
  "authorities" : [ 
     {
        "authority" : "ROLE_USER"
     },
     {
        "authority" : "ROLE_ADMIN"
     }
  ],
  "password" : "lakdjalksdj87a68sd76as87d6a87sd6",
  "username" : "someusername",
  "version" : NumberLong(1)
}