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" } ]
}
)
위의 코드에서 username
과 password
는 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
은 접속할 데이터베이스의 이름입니다. username
과 password
는 생성한 사용자 계정의 정보를 입력해주어야 합니다. 이렇게 하면 해당 사용자 계정으로 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
메서드를 사용하여 새로운 데이터를 삽입합니다.