【问题标题】:How I can create user defined roles in mongoDB如何在 mongoDB 中创建用户定义的角色
【发布时间】:2014-12-30 13:55:41
【问题描述】:

我在 mongoDB 2.6.4 中有一个数据库,我想根据他们的级别限制用户。我想为某些用户授予读取权限,并为特定数据库上的某些用户授予插入/更新权限。请让我知道如何创建用户定义的角色并将其分配给用户。我尝试了以下方法,但它不起作用,用户仍然拥有完全权限。

db.runCommand({createRole: "read",
               privileges: [
                   { resource: { db: "sample", collection: "" }, 
                     actions: [ "find" ] 
                   }],
               roles: [],
               writeConcern: { w: "majority" , wtimeout: 5000 }
             })

================================================ ====================================

db.addUser( { user : "read",
              pwd  : "read",
              roles:["read"]
        } )

【问题讨论】:

  • Stackoverflow 是一个面向软件开发人员的网站。但是对数据库的权限处理是一个配置问题,需要数据库管理员来解决。我提名你的问题迁移到dba.stackexchange.com
  • FYI -- 在 MongoDB 2.6.4 中,“read”是一个内置角色 docs.mongodb.org/manual/reference/built-in-roles/…,所以你不需要创建角色,你可以创建用户,授予他们示例数据库中的“读取”角色。确保您使用 --auth 运行 mongod,并且当您连接时,您需要对用户进行身份验证。
  • 我已经尝试过了,但是获得读取权限的用户能够在数据库中执行 curd 操作。

标签: mongodb mongodb-query database-administration


【解决方案1】:

使用以下命令以管理员身份登录

use admin
db.createRole(
   {
     role: "appsRole",
     privileges: [
       { resource: { cluster: true }, actions: [ "serverStatus" ] }
     ],
     roles: []
   }
)

将创建以上角色并授予服务器状态特权。更多详细信息,请仔细查看 mongodb 文档。

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2018-09-07
    • 2011-02-28
    • 2016-08-19
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多