如何在mongodb配置文件中设置授权?

时间:2014-08-15 10:46:38

标签: mongodb authentication configuration-files

我在mongod.exe中使用此选项在服务器中运行cmd.exe

mongod.exe --dbpath=path --auth

现在,我怎样才能在配置文件中执行此操作? 我的mongod.cfg

dbpath=D:\Program Files\MongoDB 2.6 Standard\data

security=
authorization= enabled

我收到此错误:

  

解析INI配置文件时出错:未知选项安全性。

9 个答案:

答案 0 :(得分:67)

答案 1 :(得分:20)

mongodb 3.2版

这是正确的配置

security:
  authorization: "enabled"

带引号,因为该值是根据文档

的字符串

答案 2 :(得分:7)

只需要说

auth=true

您不需要任何其他选项!

答案 3 :(得分:7)

security:
   authorization: "enabled"

这是正确的,如上所述,有一点需要注意的是,如果它仍然没有工作,请确保您没有使用选项卡作为授权线,它赢得了工作,您只需要使用空格。

答案 4 :(得分:1)

如果您使用的是YAML

security:
  authorization: "enabled"

适用于2.6或更高版本。

但是,如果您不使用YAML。

auth: true

我正在使用mongodb v3.0.2,v3.6.5,v4.0.3,两个文件都可以正常工作。

INI CONFIG

# mongodb.conf

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 0.0.0.0
port = 27017

journal=true
auth = true

YAML配置

# 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: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: "enabled"

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

答案 5 :(得分:0)

在DigitalOcean上,您将获得3.6.3版本,但带有2. *样式配置文件。阅读以上所有评论时会感到困惑。

因此,您最好遵循官方的《 MongoDB指南》(this one

,而不是按照DigitalOcean安装MongoDB指南(this one

答案 6 :(得分:0)

参加聚会真的很晚。

对我来说,以上方法均无效(在Windows,Linux上,只要权限正确,“授权:已启用”就可以正常工作)。 最终使用第三方服务管理器通过--dbpath和--auth选项创建了自己的服务。就像魅力一样。

我完全意识到这不是直接的答案,但我希望这会对某人有所帮助。

不过,我不能使用“ C:\ Program Files \ MongoDB \ 4.2 \ Server \ data”文件夹。没有写权限。

答案 7 :(得分:0)

db.adminCommand(
    {
        setParameter: 1, 
        security.authorization: "enabled" 
    }
);

答案 8 :(得分:-1)

对我来说,导致错误/错误的关键原因已在Robert Walters的响应-在配置文件中使用TAB

中指出。

将其更改为4个空格可以解决此问题,同时使配置文件保持整洁/可读。