programing

MongoDB 기본 사용자 및 비밀번호는 무엇입니까?

i4 2023. 4. 1. 08:27
반응형

MongoDB 기본 사용자 및 비밀번호는 무엇입니까?

로컬과 프로덕션에서 동일한 연결 문자열을 사용하고 있습니다.연결 문자열이mongodb://localhost/mydb

사용자 이름과 비밀번호는 무엇입니까?이렇게 하는 것이 안전한가요?

기본적으로는 mongodb에는 사용 가능한 접근컨트롤이 없기 때문에 기본 사용자나 비밀번호는 없습니다.

액세스 제어를 이노블로 만들려면 명령줄 옵션 중 하나를 사용합니다.--auth또는 보안.인가 컨피규레이션파일 설정.

다음 절차를 사용하거나 MongoDB 문서의 "인증 활성화"를 참조하십시오.

절차.

  1. 접근통제 없이 MongoDB를 기동합니다.

     mongod --port 27017 --dbpath /data/db1
    
  2. 인스턴스에 연결합니다.

     mongosh --port 27017
    
  3. 사용자 관리자를 만듭니다.

     use admin
     db.createUser(
       {
         user: "myUserAdmin",
         pwd: passwordPrompt(), // or cleartext password
         roles: [ 
           { role: "userAdminAnyDatabase", db: "admin" },
           { role: "readWriteAnyDatabase", db: "admin" } 
         ]
       }
     )
    
  4. 액세스 컨트롤을 사용하여 MongoDB 인스턴스를 다시 시작합니다.

     mongod --auth --port 27017 --dbpath /data/db1
    
  5. 사용자 관리자로 인증합니다.

     mongosh --port 27017 --authenticationDatabase "admin"\
         -u "myUserAdmin" -p 
    

@Camilo Silva가 이미 언급한 내용과 더불어 데이터베이스 작성, 읽기, 쓰기 등에 대한 무료 액세스를 제공하지만 루트 역할을 작성하지 않으려면 다음과 같이 세 번째 단계를 변경할 수 있습니다.

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, 
             { role: "dbAdminAnyDatabase", db: "admin" }, 
             { role: "readWriteAnyDatabase", db: "admin" } ]
  }
)

사용자를 이미 작성한 경우 다음과 같이 사용자를 업데이트할 수 있습니다.

첫 번째 로그온:

mongo --port 27017 -u "myUserAdmin" -p "abc123" \
  --authenticationDatabase "admin"

추가 권한:

use admin
db.grantRolesToUser(
   "myUserAdmin",
   [ { role: "userAdminAnyDatabase", db: "admin" }, 
     { role: "dbAdminAnyDatabase", db: "admin" }, 
     { role: "readWriteAnyDatabase", db: "admin" } ]
)

2.6 이전 MongoDB의 경우 루트 사용자를 추가하는 명령어는 다음과 같습니다.addUser(예:

db.addUser({user:'admin',pwd:'<password>',roles:["root"]})

이전에 제공된 답변 외에 하나의 옵션은 DB가 이미 액세스 제어에서 시작된 경우 'localhost 예외' 접근법에 따라 첫 번째 사용자를 생성하는 것입니다(--auth스위치)를 클릭합니다.그러기 위해서는 서버에 대한 localhost 액세스 권한이 있고 다음 작업을 수행해야 합니다.

mongo
use admin
db.createUser(
 {
     user: "user_name",
     pwd: "user_pass",
     roles: [
           { role: "userAdminAnyDatabase", db: "admin" },
           { role: "readWriteAnyDatabase", db: "admin" },
           { role: "dbAdminAnyDatabase", db: "admin" }
        ]
 })

MongoDB 매뉴얼에 기재되어 있는 바와 같이:

localhost 예외를 사용하면 접근컨트롤을 이노블로 하여 시스템 내의 첫 번째 사용자를 생성할 수 있습니다.localhost 예외를 제외하고 접근컨트롤을 이노블로 한 후 로컬호스트 인터페이스에 접속하여 관리 데이터베이스에 첫 번째 사용자를 만듭니다.첫 번째 사용자에게는 userAdmin 또는 userAdminAnyDatabase 역할을 가진 사용자 등 다른 사용자를 생성할 수 있는 권한이 있어야 합니다.localhost 예외를 사용하는 연결은 관리 데이터베이스에 첫 번째 사용자를 작성할 수 있는 액세스 권한만 가집니다.

다음은 문서의 해당 섹션에 대한 링크입니다.

너 같은 경우에는 몽고로 가라.

    mongo

    use admin

    db.createUser({user:"Username", pwd:"Password", roles:[{role:"root", db:"admin"}]})
mongod --bind_ip_all --auth

.conf 파일을 변경한 후 다음 명령을 사용합니다.

 network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,mongodb_server_ip

언급URL : https://stackoverflow.com/questions/38921414/mongodb-what-are-the-default-user-and-password

반응형