当前位置:  开发笔记 > 编程语言 > 正文

MongoDB:服务器有启动警告''没有为数据库启用访问控制''

如何解决《MongoDB:服务器有启动警告''没有为数据库启用访问控制''》经验,为你挑选了1个好方法。

我今天首先安装了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 [版本10.0.14393].



1> Karl Morriso..:

Mongodb v3.4

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

确保启动进程的用户具有权限并且目录存在(/data/db在本例中).

1)启动没有访问控制的MongoDB.

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

2)连接到实例.

mongo --port 27017

3)创建用户管理员(在管理员认证数据库中).

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/


@sureshpareek你可以在mongodb.conf文件中配置它,如果你不想每次都传递它,更多信息请访问:https://docs.mongodb.com/manual/reference/configuration-options/#security-options
认真的家伙...为什么不说在mongod.conf中启用`security.authorization`?
推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有