programing

mongo에서 수퍼유저 만들기

batch 2023. 5. 1. 20:41
반응형

mongo에서 수퍼유저 만들기

저는 mongo에서 어떤 db에서도 무엇이든 할 수 있는 사용자를 만들려고 합니다.

가이드에 따라 새 관리자를 생성했습니다. http://docs.mongodb.org/manual/tutorial/add-user-administrator

코드는 다음과 같습니다.

use admin
db.addUser( { user: "try1",
              pwd: "hello,
              roles: [ "userAdminAnyDatabase" ] } )

그런 다음 mongo를 중지하고 인증을 활성화한 다음 mongo를 다시 시작했습니다.

그런 다음 그의 사용자와 데이터베이스를 작성하려고 했습니다.

이 가이드에 따라 http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/ .

use fragola 
db.users.save( {username:"fragolino"} )

그리고 "fragola.users에 대한 삽입 권한이 없습니다"라는 메시지가 나타납니다.

누가 나를 도와줄 사람?

from docs.mongodb.org -superuser-messages

간단한 것처럼 보이는 답변을 작성하고 구현하기도 쉽습니다.

단계:

1 :sudo apt-get install mongodb-org 터미널에서

2 :sudo mongod --port 27017 --dbpath /var/lib/mongodb

3 :mongo --port 27017 터미널에서

4 :use admin

5: @drmirror가 말했듯이 슈퍼유저가 되려면 4가지 역할이 모두 있어야 합니다.

Mongo Version 2.

db.createUser(
{
    user: "tom",
    pwd: "jerry",
    roles: [
              { role: "userAdminAnyDatabase", db: "admin" },
              { role: "readWriteAnyDatabase", db: "admin" },
              { role: "dbAdminAnyDatabase", db: "admin" },
              { role: "clusterAdmin", db: "admin" }
           ]
})

Mongo Version 3.

db.createUser(
   {
       user: "tom", 
       pwd: "jerry", 
       roles:["root"]
   })

6 :sudo /etc/init.d/mongod stopORsudo service mongod stop 터미널에서

7 :sudo /etc/init.d/mongod startORsudo service mongod start

8 :restart your pc

9 :sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb 터미널에서

10:mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin" 터미널에서

참고: 10단계가 가장 중요한 단계입니다.

터미널에서 출력을 제공합니다.

MongoDB shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>

역할userAdminAnyDatabase사용자는 사용자를 생성하고 임의 역할을 할당할 수 있습니다.따라서 해당 사용자는 자신을 포함한 모든 사용자에게 권한을 부여할 수 있으므로 데이터베이스에서 모든 작업을 수행할 수 있습니다.

하지만, 그userAdminAnyDatabase역할 자체로는 사용자가 임의 사용자에게 임의 권한을 할당하는 것 외에 다른 작업을 수행할 수 없습니다.실제로 데이터베이스에서 작업을 수행하려면 해당 사용자에게 다음과 같은 추가 역할이 있어야 합니다.

readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin

위 3가지 권리를 갖는 사용자 및 userAdminAnyDatabase진정한 슈퍼 유저이며 무엇이든 할 수 있습니다.

언급URL : https://stackoverflow.com/questions/22638258/create-superuser-in-mongo

반응형