MongoDB外壳身份验证错误

2izufjch  于 2022-10-22  发布在  Go
关注(0)|答案(2)|浏览(155)

我为名为学生的数据库创建了一个用户和密码。
Db.createUser({User:‘Catalin’,pwd:‘Catalin’,Roles:[{Role:‘userAdmin’,db:‘Student’}]});
因此,我使用以下命令重新启动了MongoDB服务器:

mongod --auth --dbpath C:\data\db

在另一个终端上,我使用以下命令连接到服务器:

mongo

然后使用以下命令查询服务器:

> db.getUsers()
[
    {
            "_id" : "student.Catalin",
            "user" : "Catalin",
            "db" : "student",
            "roles" : [
                    {
                            "role" : "userAdmin",
                            "db" : "student"
                    }
            ]
    }

]
已进入学生数据库:

> use student
switched to db student

通过以下命令成功输入了我的用户名和密码:

> db.auth('Catalin','Catalin');
1

当我想要查看我的收藏时,我得到一个错误,为什么?:

> show collections
2016-03-07T15:54:41.166+0300 E QUERY    [thread1] Error: listCollections failed:
{
    "ok" : 0,
  **"errmsg" : "not authorized on student to execute command { listCollectio
ns: 1.0, filter: {} }",**
    "code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:23:13
DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:746:1
DB.prototype.getCollectionInfos@src/mongo/shell/db.js:758:15
DB.prototype.getCollectionNames@src/mongo/shell/db.js:769:12
shellHelper.show@src/mongo/shell/utils.js:695:9
shellHelper@src/mongo/shell/utils.js:594:15
@(shellhelp2):1:1

“errmsg”:“未授权学生执行命令{listCollectio ns:1.0,Filter:{}}”,

附言:我使用的是MongoDB 3.2

u0sqgete

u0sqgete1#

用户管理员内置角色仅提供创建和修改数据库上的角色和用户的功能。如果您需要访问数据库,则需要分配数据库角色或具有数据库访问权限的其他角色,如dbOwner。
有关更多详细信息,请参阅内置角色。
您可能还会发现以下内容很有用:

ozxc1zmp

ozxc1zmp2#

如果您使用的是版本5或更早版本的数据库MongoDB,请注意这一点。您不应该在/etc/mongod.conf路径中的mongod.conf文件中写入任何内容。使用以下两个命令更新依赖项。
安装依赖项:
Sudo apt安装libgconf-2-4
Sudo添加-APT-存储库领域

相关问题