MongoDB:服务器具有启动警告“未为数据库启用访问控制”


89

我今天首先安装了MongoDB 3.4.1。但是,当我启动它并使用MongoDB shell时,它在下面给了我这些警告:

C:\Users\hs>"C:\Program Files\MongoDB\Server\3.4\bin\mongo.exe
MongoDB shell version v3.4.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.1
Server has startup warnings:
2017-01-12T21:19:46.941+0800 I CONTROL  [initandlisten]
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten]

我的计算机是Microsoft Windows [ version 10.0.14393]。



6
这几乎是另一个问题的完美复制。去年您是否碰巧已经用不同的用户名问过这个问题?唯一不同的是Windows的用户名和版本。参见:stackoverflow.com/questions/36660117/…–
约瑟夫·费里斯

@JosephFerris,是的,这是stackoverflow.com/questions/36660117 / ...的重复项,由于该重复项,该问题已关闭。
Lakmal Vithanage

Answers:


137

Mongodb v3.4

您需要执行以下操作来创建安全的数据库:

确保启动进程的用户具有权限并且目录存在(/data/db在这种情况下)。

1)在没有访问控制的情况下启动MongoDB。

mongod --port 27017 --dbpath /data/db

2)连接到实例。

mongo --port 27017

3)创建用户管理员(在admin身份验证数据库中)

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

4)使用访问控制重新启动MongoDB实例。

mongod --auth --port 27017 --dbpath /data/db

5)以用户管理员身份连接并进行身份验证。

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

6)根据您的部署需要创建其他用户(例如,在测试身份验证数据库中)

use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

7)连接并认证为myTester。

mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"

我基本上只是在这里解释了官方文档的简短版本:https : //docs.mongodb.com/master/tutorial/enable-authentication/


1
我确实喜欢您说的,但是一个问题是–auth必须每次或一次通过。如果每次都那么如何给予服务,因为在服务器上我想让此sudo服务启动MongoDB?
suresh pareek

5
@sureshpareek如果您不想每次都传递它,可以在mongodb.conf文件中进行配置,更多信息请参见
2015年

1
@sureshpareek没问题的人!如果您想了解更多信息,请查看此处:stackoverflow.com/a/42929869/1137669我会详细解释。
basickarl

我第一步失败。我是
v3.6.5

7
认真的家伙...为什么你不说启用security.authorizationin mongod.conf??????
约翰

-4

您需要删除旧的db文件夹,然后重新创建一个新的db文件夹。它将解决您的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.