[python] 파이썬(PyMongo)을 사용한 MongoDB 인증 설정

이 글에서는 파이썬과 PyMongo 라이브러리를 사용하여 MongoDB 데이터베이스에 인증을 설정하는 방법을 알아보겠습니다.

1. MongoDB 설치

우선, MongoDB를 설치해야 합니다. 공식 MongoDB 웹사이트(https://www.mongodb.com/)에서 운영 체제에 맞는 버전을 다운로드하고 설치합니다.

2. PyMongo 설치

PyMongo는 MongoDB와 상호작용하기 위한 파이썬 라이브러리입니다. 다음 명령어를 사용하여 PyMongo를 설치합니다.

pip install pymongo

3. MongoDB 인증 설정

MongoDB에는 다양한 인증 메커니즘이 있지만, 여기에서는 기본적인 사용자 이름과 비밀번호로 인증하는 방법을 다루겠습니다.

from pymongo import MongoClient

# MongoDB 연결
client = MongoClient('mongodb://<사용자 이름>:<비밀번호>@localhost:27017/')

# 데이터베이스 선택
db = client['mydatabase']

# 컬렉션 선택
collection = db['mycollection']

# 데이터 조회
data = collection.find_one()

print(data)

위의 코드에서 <사용자 이름><비밀번호>을 설정하는 부분에 실제 사용자 이름과 비밀번호를 입력하면 됩니다.

4. 사용자 생성

MongoDB에 접속하여 사용자를 생성해야 합니다. 다음 명령어를 사용하여 MongoDB 쉘에 접속합니다.

mongo

다음으로 admin 데이터베이스에 접속합니다.

use admin

사용자를 생성하기 위해 다음 명령어를 실행합니다.

db.createUser({user: "<사용자 이름>", pwd: "<비밀번호>", roles: ["readWrite"]})

<사용자 이름><비밀번호>를 실제 사용자이름과 비밀번호로 대체하고, roles는 사용자의 권한에 따라 조정할 수 있습니다.

5. 인증 설정 확인

위에서 설정한 사용자 이름과 비밀번호로 인증을 요구하는 경우, 다음과 같이 인증 정보를 함께 전달해야 합니다.

from pymongo import MongoClient

# MongoDB 연결
client = MongoClient('mongodb://<사용자 이름>:<비밀번호>@localhost:27017/', authSource='admin')

# 데이터베이스 선택
db = client['mydatabase']

# 컬렉션 선택
collection = db['mycollection']

# 데이터 조회
data = collection.find_one()

print(data)

위의 코드에서 authSource 옵션은 인증을 위해 사용되는 데이터베이스를 명시적으로 지정하는 역할을 합니다. 여기서는 admin 데이터베이스를 사용하고 있으므로 해당 값을 admin으로 설정하였습니다.

이제 파이썬(PyMongo)을 사용하여 MongoDB에 인증을 설정하는 방법을 알아보았습니다. 이를 통해 MongoDB 데이터베이스에 접속하여 안전하게 작업할 수 있습니다.

참고 자료