programing

mongodb 구성 파일에서 권한을 설정하는 방법은 무엇입니까?

javamemo 2023. 5. 5. 08:31
반응형

mongodb 구성 파일에서 권한을 설정하는 방법은 무엇입니까?

나는 달립니다mongod.exe이 옵션이 있는 서버에서cmd.exe:

mongod.exe --dbpath=path --auth

이제 구성 파일에서 이 작업을 수행하려면 어떻게 해야 합니까?
나의mongod.cfg:

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

security=
authorization= enabled

다음 오류가 발생했습니다.

INI 구성 파일을 구문 분석하는 중 오류가 발생했습니다. 알 수 없는 옵션 보안입니다.

mongod 버전 2.4의 경우(ini 구성 파일)

auth = true

https://docs.mongodb.com/v2.4/reference/configuration-options/ #auth

mongod 버전 2.6+의 경우(yaml 구성 파일)

security:
    authorization: enabled

https://docs.mongodb.com/v3.2/reference/configuration-options/ #security.authorization https://docs.mongodb.com/v3.0/reference/configuration-options/ #security.authorization https://docs.mongodb.com/v2.6/reference/configuration-options/ #security.authorization

mongodb 버전 3.2

올바른 구성입니다.

security:
  authorization: "enabled"

값이 문서에 따라 문자열이므로 따옴표를 사용합니다.

security:
   authorization: "enabled"

위에서 언급한 대로 맞습니다. 한 가지 주의할 점은 여전히 작동하지 않는 경우 인증 라인에 탭을 사용하지 않았는지 확인하십시오. 탭은 작동하지 않습니다. 공간만 사용하면 됩니다.

할 말이 있습니다

auth=true

다른 옵션은 필요 없습니다!

YAML을 사용하는 경우

security:
  authorization: "enabled"

2.6 이상에서 일하는 것.

하지만 YAML을 사용하지 않는다면요.

auth: true

mongodb v3.0.2, v3.6.5, v4.0.3을 사용합니다. 두 파일이 모두 올바르게 작동합니다.

INI 구성

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

DigitalOcean에서는 3.6.3 버전을 제공하지만 2.* 스타일의 구성 파일을 제공합니다.이것은 위의 모든 댓글을 읽을 때 혼동을 일으킵니다.

따라서 MongoDB를 설치하는 Digital Ocean Guide( 가이드)를 따르는 대신 공식 MongoDB Guide( 가이드)를 사용하는 것이 좋습니다.

그들의 파티에 정말 늦었습니다.

나에게는 위의 어떤 것도 작동하지 않았습니다. (Windows의 경우 Linux에서 "authorization: enabled"는 권한이 올바른 한 제대로 작동하지 않습니다.)결국 타사 서비스 관리자를 사용하여 --dbpath 및 --auth 옵션을 사용하여 나만의 서비스를 만들었습니다.매력적으로 작동합니다.

저는 이것이 직접적인 대답이 아니라는 것을 완벽하게 알고 있지만, 이것이 누군가에게 도움이 되기를 바랍니다.

참고로, "C:"를 사용할 수 없었습니다.\Program Files\MongoDB\4.2\Server\data" 폴더입니다.쓰기 권한이 없습니다.

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

나에게 있어 결함/오류의 원인이 된 주요 사항은 Robert Walters 응답 - 구성 파일의 TAB 사용에서 확인되었습니다.

이를 4개의 공백으로 변경하면 구성 파일이 깔끔하고 읽기 쉬운 상태로 유지되면서 문제가 해결되었습니다.

언급URL : https://stackoverflow.com/questions/25325142/how-to-set-authorization-in-mongodb-config-file

반응형