无法通过userAdmin访问mongo上的集合和数据

时间:2014-07-21 08:32:31

标签: mongodb security authentication

我正在尝试将安全设置设置为我的mongo实例。 它位于单个远程Linux服务器上。 我按照mongo文档的教程。 这就是我执行的步骤:

// running mongod with auth 
mongod --auth --config /path-to-conf-file
// connect to mongo with local host exception
mongo
// creating user admin
use admin
db.createUser({
    user:"myadmin",
    pwd:"1234",
    roles: [
        "userAdminAnyDatabase"
    ]})
// logging in with user admin
mongo -u myadmin -p 1234 --authenticationDatabase     admin

我收到警告:'管理员未授权执行命令{getLog:“启动警告”}' 我能够创建用户和'显示dbs',但不能'显示集合'

我收到另一个错误:'未授权查询admin.system.namespaces'

所以我认为用户不是以管理员身份创建的。我该怎么做才能登录并能够进行查询操作?

1 个答案:

答案 0 :(得分:3)

myadmin用户拥有userAdminAnyDatabase权限。这意味着用户可以向任何数据库中的任何用户授予任何权限,但它不会授予用户执行非用户管理操作的权限。解决方案是使用myadmin用户的用户管理权限授予自己更多权限。对于任何数据库的查询操作,请授予readWriteAnyDatabase角色。有很多built-in roles可供选择。

相关问题