docker에서 MongodB 인증 권한 열기
사고의 방향
MongoDB 서비스를 시작하면 기본적으로 인증할 권한이 없습니다.IP + 포트를 통해 데이터베이스를 원격으로 액세스하고 모든 작업을 수행할 수 있습니다.다음은 docker에서 MongoDB의 권한 인증을 시작하는 방법을 소개합니다.
MongoDB 서비스를 설치한 후 기본적으로admin 데이터베이스가 하나 있는데 이때admin 데이터베이스는 비어 있고 권한과 관련된 정보를 기록하지 않습니다.관리자system.사용자가 한 명도 없을 때 MongoDB가 시작될 때
--auth
파라미터를 추가하더라도admin 데이터베이스에 사용자를 추가하지 않았을 때 어떠한 인증도 하지 않고 (--auth
파라미터로 시작하든지 상관없이) 모든 조작을 할 수 있습니다.system.사용자에 사용자를 추가합니다.따라서 MongodB의 권한 인증을 열려면 다음과 같은 두 가지 조건이 필요합니다.--auth
으로 실천하다
docker exec -it ID /bin/bash
mongo
use admin
MongoDB는 자체적으로 데이터베이스인admin을 가지고 있으며 이 데이터베이스에서 관리자 계정을 만들 수 있습니다.모든 생성된 사용자는 시스템에 저장됩니다.users 집합 중입니다.db.getCollectionNames()
// [ "system.users", "system.version" ]
db.createUser({user:"admin",pwd:"xiiasdfiik34",roles:[{role: 'root', db: 'admin'}]})
/*
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
*/
db.auth('admin', 'xiiasdfiik34') // 1
use test_db
사용자 역할 만들기, 읽기 및 쓰기 권한 부여 db.createUser({
user: 'test_user',
pwd: 'vfeqwerfd4334',
roles: [{role: 'readWrite', db: 'test_db'}]
})
/*
Successfully added user: {
"user" : "test_user",
"roles" : [
{
"role" : "readWrite",
"db" : "test_db"
}
]
}
*/
인증 시험: db.auth('test_user', 'vfeqwerfd4334')
주의: 사용자는 이 사용자를 만들 때 있는 데이터베이스에서만 인증할 수 있습니다.인증이 성공하면 이 데이터베이스에 대해 권한 범위 내의 조작을 수행할 수 있다.yikaoyan-mongodb:
image: mongo:latest
volumes:
- ./data/db:/data/db
ports:
- 27017:27017
command: [--auth] #
mongodb_uri = 'mongodb://test_user:vfeqwerfd4334@localhost/test_db?authSource=test_db&authMechanism=SCRAM-SHA-1'
MongoDB 연결 URL을 지정하면 다음을 참조할 수 있습니다.https://api.mongodb.com/python/current/examples/authentication.html 사용자 삭제:
db.dropUser('username')
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.