[python] 파이썬으로 MongoDB의 데이터 액세스 인증 및 권한 관리하기

MongoDB는 인기 있는 NoSQL 데이터베이스로, 파이썬을 사용하여 데이터 액세스 및 권한 관리를 할 수 있습니다. MongoDB에는 사용자 인증 및 권한 관리 기능이 내장되어 있어 데이터 보안을 효과적으로 관리할 수 있습니다.

1. MongoDB에 사용자 계정 생성하기

MongoDB에는 관리자 또는 데이터베이스 사용자로 로그인해야만 데이터에 접근할 수 있습니다. 파이썬을 사용하여 MongoDB에 사용자 계정을 생성하는 방법은 다음과 같습니다.

from pymongo import MongoClient

mongo_client = MongoClient("mongodb://localhost:27017")
admin_db = mongo_client.admin
admin_db.authenticate(username, password)
admin_db.createUser(
   {
     user: "new_user",
     pwd: "new_password",
     roles: [ { role: "readWrite", db: "my_database" } ]
   }
)

위의 코드에서 usernamepassword는 MongoDB에 로그인하는 관리자 계정의 정보를 입력해주어야 합니다. new_user는 새로 생성할 사용자의 이름이고, new_password는 사용자의 비밀번호입니다. roles에는 사용자의 권한을 설정할 수 있으며, 위의 예제는 my_database라는 데이터베이스에서 읽기 및 쓰기 권한을 부여하는 예시입니다.

2. MongoDB에 인증된 사용자로 접속하기

MongoDB에 생성한 사용자 계정으로 접속하려면, 파이썬을 사용하여 인증 정보를 입력해주어야 합니다.

from pymongo import MongoClient

mongo_client = MongoClient("mongodb://localhost:27017")
db = mongo_client[db_name]
db.authenticate(username, password)

위의 코드에서 db_name은 접속할 데이터베이스의 이름입니다. usernamepassword는 생성한 사용자 계정의 정보를 입력해주어야 합니다. 이렇게 하면 해당 사용자 계정으로 MongoDB 데이터베이스에 접속할 수 있습니다.

3. MongoDB에서 데이터 조작하기

인증된 사용자로 MongoDB에 접속한 후에는 데이터를 조작할 수 있습니다. 다음은 파이썬을 사용하여 MongoDB에서 데이터를 조회하는 예시입니다.

from pymongo import MongoClient

mongo_client = MongoClient("mongodb://localhost:27017")
db = mongo_client[db_name]
collection = db[collection_name]

# 모든 데이터 조회
result = collection.find()

# 특정 조건에 맞는 데이터 조회
result = collection.find({"name": "John Doe"})

# 데이터 삽입
data = {"name": "Jane Doe", "age": 25}
result = collection.insert_one(data)

위의 예시 코드에서는 collection_name은 조회하고자 하는 컬렉션의 이름입니다. find 메서드를 사용하여 특정 조건에 맞는 데이터를 조회하고, insert_one 메서드를 사용하여 새로운 데이터를 삽입합니다.

4. 참고 자료