2016-08-17 3 views
1

MongoDB 데이터베이스에서 인증을 사용하도록 설정 했으므로 pymongo를 통해 연결하고 있습니다. DB에 연결하는 사용자가 모든 관련 권한을 가질 때 모든 것이 잘 작동하지만 제한된 권한을 가진 사용자가 연결되면 첫 번째 명령을 실행할 때만 예외가 발생합니다. 연결에 대한 사용자 권한을 확인할 수있는 방법이 있습니까?Pymongo에서 연결시 사용자 권한 확인

+0

내 답변이 도움이 되었습니까? – DAXaholic

답변

0

당신이 PyMongo 3 년이 page of the docs

을 확인 할 수 있습니다 pymongo의 최신 버전을 사용하는 경우 MongoClient 생성자 더 이상 블록 서버 나 서버에 연결하는 동안, 그것은 더 이상 인상 ConnectionFailure를 사용할 수없는 경우 또는 사용자 자격 증명이 잘못된 경우 ConfigurationError. 대신 생성자는 즉시 을 반환하고 백그라운드 스레드에 대한 연결 프로세스를 시작합니다. 이 스레드가 인지 즉시 시작할지 또는 클라이언트를 처음 사용할지 여부를 제어하는 ​​연결 옵션이 추가되었습니다. 위의 client.admin.command("ismaster")을 사용하는 연결이 성공적으로

from pymongo.errors import ConnectionFailure 
client = MongoClient(connect=False) 
try: 
    result = client.admin.command("ismaster") 
except ConnectionFailure: 
    print("Server not available") 

이유에 설립 된 직접인지 알고 싶다면

또한 사실 때문이다 '해결 방법'을 제공하는 특별한 권한 없다 이를 실행해야합니다.

모든 조작을 사용하여 서버가 사용 가능한지 판별 할 수 있습니다. 우리는 값이 싸고 에 인증이 필요하지 않으므로 "ismaster"명령을 선택하십시오. 따라서 서버가 인지 여부를 확인하는 간단한 방법입니다.