相关疑难解决方法(0)

在mongo中创建超级用户

我正在尝试在mongo中创建一个可以在任何数据库中执行任何操作的用户.

根据指南,我创建了一个新的管理员:http://docs.mongodb.org/manual/tutorial/add-user-administrator

这是代码:

use admin
db.addUser( { user: "try1",
              pwd: "hello,
              roles: [ "userAdminAnyDatabase" ] } )
Run Code Online (Sandbox Code Playgroud)

然后我停止了mongo,启用了auth并重新启动了mongo.

然后我尝试用他的用户创建一个数据库.

根据本指南:http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/

use fragola 
db.users.save( {username:"fragolino"} )
Run Code Online (Sandbox Code Playgroud)

我得到这个:"未授权在fragola.users上插入"

有人可以帮帮我吗?

database permissions mongodb nosql

42
推荐指数
2
解决办法
5万
查看次数

尝试保存到 mongodb 时身份验证失败

我有以下代码保存到本地运行的 mongo 实例:

MongoCredential credential = MongoCredential.createCredential("myuser", "mydatabase", "mypassword".toCharArray());

MongoClient mongo = MongoClients.create(MongoClientSettings.builder()
                    .applyToClusterSettings(builder -> builder.hosts(Arrays.asList(new 
ServerAddress("localhost", 27017))))
                    .credential(credential)
                    .build());
MongoDatabase database = mongo.getDatabase("mydatabase");
MongoCollection<Document> collection = database.getCollection("mycollection");
collection.insertOne(document);
Run Code Online (Sandbox Code Playgroud)

我在 mongo.exe shell 中使用 db.createUser() 命令为上面代码中使用的 usernmae/password 创建了一个用户,这些与我在安装 mongodb 时提供的凭据相同。

db.createUser(
{   user: "myuser",
    pwd: "mypassword",

    roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Run Code Online (Sandbox Code Playgroud)

但代码失败并显示:

Exception in thread "main" com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='myuser', source='mydatabase', password=<hidden>, mechanismProperties={}}
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

mongodb

6
推荐指数
1
解决办法
6315
查看次数

标签 统计

mongodb ×2

database ×1

nosql ×1

permissions ×1