我今天首先安装了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]
Run Code Online (Sandbox Code Playgroud)
我的电脑是Microsoft Windows [版本10.0.14393].
Kar*_*son 113
Mongodb v3.4
您需要执行以下操作来创建安全数据库:
确保启动进程的用户具有权限并且目录存在(/data/db在本例中).
1)启动没有访问控制的MongoDB.
mongod --port 27017 --dbpath /data/db
Run Code Online (Sandbox Code Playgroud)
2)连接到实例.
mongo --port 27017
Run Code Online (Sandbox Code Playgroud)
3)创建用户管理员(在管理员认证数据库中).
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Run Code Online (Sandbox Code Playgroud)
4)使用访问控制重新启动MongoDB实例.
mongod --auth --port 27017 --dbpath /data/db
Run Code Online (Sandbox Code Playgroud)
5)以用户管理员身份进行连接和身份验证.
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
Run Code Online (Sandbox Code Playgroud)
6)根据部署需要创建其他用户(例如,在测试身份验证数据库中).
use test
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)
Run Code Online (Sandbox Code Playgroud)
7)连接并验证为myTester.
mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"
Run Code Online (Sandbox Code Playgroud)
我基本上只是在这里解释了官方文档的简短版本:https://docs.mongodb.com/master/tutorial/enable-authentication/
Fab*_*adi 11
您需要做的就是:
C:\Program Files\MongoDB\Server\4.4\bin\mongodb.cfgsecurity: authorization:,enabled如图所示;请注意,该子条目可能完全丢失。那就添加吧。MongoDB Server从 Windows服务控制面板重新启动您的服务。显然,如果在此之后设置一个基于读/读写角色的策略,那就更有意义了。
参考:https://docs.mongodb.com/manual/tutorial/configure-scram-client-authentication/
我刚刚使用 phpunit 对此进行了测试,按预期工作。