복붙노트

[MONGODB] MongoDB를 3.2 인증에 실패

MONGODB

MongoDB를 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. ==============================

    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. ==============================

    2.MongoDB의에서이 문제 (3.2.4)와 우리의 경험은 버그 또는 문서화되지 않은 기능을 보인다는 것이다. 원격 쉘 (하지 로컬 호스트)에서 사용자 및 역할을 만들려고하면, 사용자가 생성되지만 즉시 그들이 사라 쉘을 떠날으로 정말 유지되지 않습니다 (그들은 그 세션에 과도이다).

    MongoDB의에서이 문제 (3.2.4)와 우리의 경험은 버그 또는 문서화되지 않은 기능을 보인다는 것이다. 원격 쉘 (하지 로컬 호스트)에서 사용자 및 역할을 만들려고하면, 사용자가 생성되지만 즉시 그들이 사라 쉘을 떠날으로 정말 유지되지 않습니다 (그들은 그 세션에 과도이다).

    해결 방법 : (인증 MongoDB를에 처음 활성화하지 않고) 그냥 사용자를 만들려고하고 DB 서버 (로컬 호스트)의 콘솔에서 직접 수행.

  3. ==============================

    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
    
  4. from https://stackoverflow.com/questions/37372684/mongodb-3-2-authentication-failed by cc-by-sa and MIT license