[MONGODB] MongoDB를 3.2 인증에 실패
MONGODBMongoDB를 3.2 인증에 실패
나는 다음 명령 세트를 사용하여 사용자를 작성하십시오. 이 두 관리 DB에서 사용자뿐만 아니라 나의 목표 데시벨 (C2D)를 작성해야합니다 :
# mongo 127.0.0.1:27017
MongoDB shell version: 3.2.6-29-g5c19788
connecting to: 127.0.0.1:27017/test
> use admin
switched to db admin
> show collections
system.users
system.version
> db.system.users.find()
> db.createUser({user:"cd2", pwd:"cd2", roles:[{role:"dbOwner", db: "c2d"}]})
Successfully added user: {
"user" : "cd2",
"roles" : [
{
"role" : "dbOwner",
"db" : "c2d"
}
]
}
> db.system.users.find()
{ "_id" : "admin.cd2", "user" : "cd2", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "4g6t9kC+godz7k6QQOfD+A==", "storedKey" : "m3tDZBQDU2Tlb1lIjLGyTHmr2QQ=", "serverKey" : "GSA4OXSod1s8mBuZBtfmXq2tlTo=" } }, "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] }
> use c2d
switched to db c2d
> db.createUser({user:"cd2", pwd:"cd2", roles:[{role:"dbOwner", db: "c2d"}]})
Successfully added user: {
"user" : "cd2",
"roles" : [
{
"role" : "dbOwner",
"db" : "c2d"
}
]
}
> use admin
switched to db admin
> db.system.users.find()
{ "_id" : "admin.cd2", "user" : "cd2", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "4g6t9kC+godz7k6QQOfD+A==", "storedKey" : "m3tDZBQDU2Tlb1lIjLGyTHmr2QQ=", "serverKey" : "GSA4OXSod1s8mBuZBtfmXq2tlTo=" } }, "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] }
{ "_id" : "c2d.cd2", "user" : "cd2", "db" : "c2d", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "vnMjnjfykVQS8ujQXeWaYw==", "storedKey" : "OYXivkmIwuTavlwTGfjrspT6j2E=", "serverKey" : "lw8xqzAaW8V4IQ9wOmQrG2VSp88=" } }, "roles" : [ { "role" : "dbOwner", "db" : "c2d" } ] }
내가 로그인하려고하면, 나는 오류 메시지와 함께 환영 해요 :
# mongo 127.0.0.1:27017/c2d -u c2d -p c2d
MongoDB shell version: 3.2.6-29-g5c19788
connecting to: 127.0.0.1:27017/c2d
2016-05-22T10:35:41.862+0100 E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20
@(auth):6:1
@(auth):1:2
exception: login failed
그럼 난 conf의 파일에 보안 기능을 사용하고 서버를 다시 시작합니다 :
security:
authorization: enabled
오류가 여전히 동일합니다 :
# mongo 127.0.0.1:27017/c2d -u c2d -p c2d
MongoDB shell version: 3.2.6-29-g5c19788
connecting to: 127.0.0.1:27017/c2d
2016-05-22T10:37:43.713+0100 E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1441:20
@(auth):6:1
@(auth):1:2
exception: login failed
해결법
-
==============================
1.글쎄, 당신은 성공적으로 사용자를 생성 순서로 단계의 몇을해야합니다.
글쎄, 당신은 성공적으로 사용자를 생성 순서로 단계의 몇을해야합니다.
우선, 당신은 관리자 사용자를 작성해야합니다. 나는 슈퍼 사용자를 생성 선호합니다.
> use admin > db.createUser({user: "root", pwd: "123456", roles:["root"]})
당신의 MongoDB의 서버를 다시 시작하고 --auth 플래그 인증을 할 수 있습니다.
> mongod --auth --port 27017 --dbpath /var/lib/mongodb
서버가되면, 관리자에 연결
> 몽고 <호스트 : 포트> -u는 "루트"-p "123456", "admin"을 --authenticationDatabase
당신이 연결되면, 일반 사용자를 만듭니다. 사용자 데이터베이스 이름을 가정하면 CD2입니다.
> use cd2 > db.createUser({user: "cd2", pwd: "cd2", roles:["dbOwner"]})
당신은 새로운 사용자와 몽고 쉘 및 재 연결에서 성공 메시지, 분리 표시되는 경우 신임장.
> mongo <host:port>/cd2 -u "cd2" -p "cd2"
-
==============================
2.MongoDB의에서이 문제 (3.2.4)와 우리의 경험은 버그 또는 문서화되지 않은 기능을 보인다는 것이다. 원격 쉘 (하지 로컬 호스트)에서 사용자 및 역할을 만들려고하면, 사용자가 생성되지만 즉시 그들이 사라 쉘을 떠날으로 정말 유지되지 않습니다 (그들은 그 세션에 과도이다).
MongoDB의에서이 문제 (3.2.4)와 우리의 경험은 버그 또는 문서화되지 않은 기능을 보인다는 것이다. 원격 쉘 (하지 로컬 호스트)에서 사용자 및 역할을 만들려고하면, 사용자가 생성되지만 즉시 그들이 사라 쉘을 떠날으로 정말 유지되지 않습니다 (그들은 그 세션에 과도이다).
해결 방법 : (인증 MongoDB를에 처음 활성화하지 않고) 그냥 사용자를 만들려고하고 DB 서버 (로컬 호스트)의 콘솔에서 직접 수행.
-
==============================
3.당신이 쉘을 통해 로그인 할 경우, DB "관리자"에서 사용자를 생성, NOT 사용자 정의 DB에서 확인하십시오. 귀하의 경우에 당신은 "C2D"로 전환했다.
당신이 쉘을 통해 로그인 할 경우, DB "관리자"에서 사용자를 생성, NOT 사용자 정의 DB에서 확인하십시오. 귀하의 경우에 당신은 "C2D"로 전환했다.
여기에 내가 ( "관리자"로 로그인을) 시도 것입니다
$ mongo -u admin -p --authenticationDatabase "admin" > use admin > db.createUser( { user: "user007", pwd: "YourP@ssw0rd", roles: [ { role: "readWrite", db: "yourdb" }, ] } )
root@mongo-server:/# mongo -u admin -p --authenticationDatabase "admin" MongoDB shell version v4.0.6 Enter password: connecting to: mongodb://127.0.0.1:27017/?authSource=admin&gssapiServiceName=mongodb MongoDB server version: 4.0.6 ---- > use admin switched to db admin > db.createUser( ... { ... user: "user007", ... pwd: "YourP@ssw0rd", ... roles: [ ... { role: "readWrite", db: "yourdb" }, ... ] ... } ... ) Successfully added user: { "user" : "user007", "roles" : [ { "role" : "readWrite", "db" : "yourdb" } ] }
root@mongo-server:/# mongo -u user007 -p YourP@ssw0rd connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("ceabf440-c584-4518-90f5-cc845eaec3b3") } MongoDB server version: 4.0.6 --- >
$ mongo -u admin -p --authenticationDatabase "admin" > use yourdb > db.createUser( { user: "user007", pwd: "YourP@ssw0rd", roles: [ { role: "readWrite", db: "yourdb" }, ] } )
root@mongo-server:/# mongo -u admin -p --authenticationDatabase "admin" MongoDB shell version v4.0.6 Enter password: connecting to: mongodb://127.0.0.1:27017/?authSource=admin&gssapiServiceName=mongodb MongoDB server version: 4.0.6 ---- > use yourdb switched to db yourdb > db.createUser( ... { ... user: "user007", ... pwd: "YourP@ssw0rd", ... roles: [ ... { role: "readWrite", db: "yourdb" }, ... ] ... } ... ) Successfully added user: { "user" : "user007", "roles" : [ { "role" : "readWrite", "db" : "yourdb" } ] } >
root@mongo-server:/# mongo -u user007 -p YourP@ssw0rd MongoDB shell version v4.0.6 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb 2019-12-06T04:28:34.630+0800 E QUERY [js] Error: Authentication failed. : connect@src/mongo/shell/mongo.js:343:13 @(connect):1:6 exception: connect failed
from https://stackoverflow.com/questions/37372684/mongodb-3-2-authentication-failed by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 필드 / 키마다 고유 값 MongoDB의 카운트 수가 (0) | 2019.12.09 |
---|---|
[MONGODB] 찾을 수없는 클래스 'MongoClient' (0) | 2019.12.09 |
[MONGODB] 어떻게 MongoDB의 쿼리 가입? (0) | 2019.12.09 |
[MONGODB] 문제는 유성의 예제를 실행하기 (0) | 2019.12.09 |
[MONGODB] 어떻게 다른 시간대에 년 - 월 - 일까지 집계합니다 (0) | 2019.12.09 |