我正在尝试使用Robo 3T远程连接到我的 Google Cloud Server以连接MongoDB v4.0.11,这样我就可以从 Windows 中查看数据。
我正在运行 Ubuntu 18.04LTS Minimal。为了启用到 MongoDB 的远程连接,我首先在我的 admin 数据库中创建了一个管理用户和 root 用户。
我的问题是,一旦我添加authorization: "enabled"到security:在/etc/mongod.conf重启MongoDB中,我在运行时,遇到下列情况$:systemctl status mongod
? mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2019-08-06 16:43:51 BST; 1min 20s ago
Docs: https://docs.mongodb.org/manual
Process: 6517 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=2)
Main PID: 6517 (code=exited, status=2)
Aug 06 16:43:51 instance-1 systemd[1]: Started MongoDB Database Server.
Aug 06 16:43:51 instance-1 mongod[6517]: Unrecognized option: processManagement.authorization
Aug 06 16:43:51 instance-1 mongod[6517]: try '/usr/bin/mongod --help' for more information
Aug 06 16:43:51 instance-1 systemd[1]: mongod.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 06 16:43:51 instance-1 systemd[1]: mongod.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)
示例 /etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
#security:
authorization: "enabled"
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
Run Code Online (Sandbox Code Playgroud)
似乎有一个无效的论点,/etc/mongod.conf但从我在网上阅读的内容来看,我看不出问题所在。
小智 8
wrong:
#security:
authorization: "enabled"
Run Code Online (Sandbox Code Playgroud)
correct:
security:
authorization: enabled
Run Code Online (Sandbox Code Playgroud)
对于 4.x 版本,您似乎需要修改您列出的现有安全部分
#security:
authorization: "enabled"
Run Code Online (Sandbox Code Playgroud)
并将其替换为security.authorization: enabled或
security:
authorization: "enabled"
Run Code Online (Sandbox Code Playgroud)
然后您应该能够重新加载并测试身份验证是否按预期工作。
如果您深入研究文档,您会在此处找到相关部分。
安全授权
Run Code Online (Sandbox Code Playgroud)Type: string Default: disabled Enable or disable Role-Based Access Control (RBAC) to govern each user’s access to database resources and operations. Set this option to one of the following: Value Description enabled A user can access only the database resources and actions for which they have been granted privileges. disabled A user can access any database and perform any action.