角色如何在MongoDB中运行?

时间:2013-08-12 14:18:42

标签: mongodb permissions admin nosql

我想知道数据库访问角色在Mongo DB中的工作原理。下面的10 gen页面提供了关于每个角色的权利的详细信息,但我不知道如何实现它们。

http://docs.mongodb.org/manual/reference/user-privileges/

我是否需要将每个角色添加到我的数据库中?还是已经添加了?

修改

我了解为用户添加角色。但是,我没有看到如何将角色添加到特定数据库。在我为用户添加了任何“默认”角色后,我看到以下警告:

警告:数据库db1中没有此类角色“dbAdminAnyDatabase”。不会从此角色获得任何特权

1 个答案:

答案 0 :(得分:1)

MongoDB中的用户权限roles被授予users。用户可能有多个角色,并且可能在不同的逻辑数据库上具有不同的角色。与MongoDB 2.4一样,默认情况下禁用身份验证,您必须显式Enable Authentication并为管理用户添加凭据。

如果要授予用户访问适用于any database的更广泛角色(例如dbAdminAnyDatabase)的权限,则需要在admin用户数据库中授予这些角色。在您收到错误的示例中,您尝试通过数据库dbAdminAnyDatabase而不是db1 db授予admin角色。

MongoDB手册包含一个教程,其中包含添加到特定数据库以及admin数据库的示例:

值得注意的是,MongoDB 2.4中可用的角色/权限比以前的版本具有更多的粒度。可用的user privilege roles目前是预先定义的,但MongoDB的未来版本可能允许用户定义的角色 - 在MongoDB问题跟踪器中监视/ upvote SERVER-8580以获取此功能请求。