2016-06-27 2 views
2

"client_data"컬렉션이있는 약 30 개의 데이터베이스가 포함 된 MongoDB 인스턴스가 있습니다. 클라이언트에게이 컬렉션에 대한 읽기 권한을 모든 데이터베이스와 다른 컬렉션에 부여하고 싶습니다. 기능은 인수로 미리 정의 된 역할에 전달할 수 있지만,()는 CREATE_USER 거기입니다pymongo를 사용하여 사용자 정의 역할을 만들 수 있습니까?

mongoclient = pymongo.MongoClient("mongodb://admin:[email protected]/port") 
rolenames = [] 
for dbname in mongoclient.get_databases(): 
    db = mongoclient[dbname] 
    rolename = dbname + "role" 
    rolenames.append[rolename] 
    db.create_role(rolename, [ {resource: {db: dbname, collection: client_data}, actions: ["find"] } ]) 

다음

db.create_user("client", password, roles=rolenames) 

내가 아는 :이 같은 일을 수행하는 스크립트를 작성하려면 pymongo 내에서 새로운 역할을 정의하는 방법은 무엇입니까?

답변

2

예, 가능합니다! 내 예를보세요 :

db.command("createRole", 
    "manageCurrentOpRole", 
    privileges=[{"resource" : {"cluster" : True}, "actions" : ["inprog"]}], 
    roles=[]) 
+0

이 도구를 사용 했습니까? 어떻게 작동하는지 설명해 주시겠습니까? 이 API 문서는 어디에 있습니까? – pitchblack408

관련 문제