我想知道数据库访问角色在Mongo DB中的工作原理。下面的10 gen页面提供了关于每个角色的权利的详细信息,但我不知道如何实现它们。
http://docs.mongodb.org/manual/reference/user-privileges/
我是否需要将每个角色添加到我的数据库中?还是已经添加了?
修改 的
我了解为用户添加角色。但是,我没有看到如何将角色添加到特定数据库。在我为用户添加了任何“默认”角色后,我看到以下警告:
警告:数据库db1中没有此类角色“dbAdminAnyDatabase”。不会从此角色获得任何特权
答案 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以获取此功能请求。