Ich habe die Authentifizierung in meiner MongoDB-Datenbank aktiviert, und ich verbinde mich über pymongo mit ihm. Alles funktioniert gut, wenn der Benutzer, der sich mit der DB verbindet, über alle relevanten Berechtigungen verfügt. Wenn jedoch ein Benutzer mit eingeschränkten Berechtigungen eine Verbindung herstellt, wird nur beim Ausführen des ersten Befehls eine Ausnahme ausgelöst. Gibt es eine Möglichkeit, die Berechtigungen des Benutzers für die Verbindung zu überprüfen?Pymongo überprüfen Benutzerberechtigungen für die Verbindung
Antwort
Wenn Sie eine aktuelle Version von verwenden pymongo Sie können diese page of the docs
In PyMongo 3 zu überprüfen, die MongoClient Konstruktor nicht mehr blockiert, während an den Server oder Server verbinden und es nicht mehr Raises ConnectionFailure, wenn sie nicht verfügbar sind, oder ConfigurationError, wenn die Anmeldeinformationen des Benutzers falsch sind. Stattdessen gibt der Konstruktor sofort zurück und startet den Verbindungsprozess für Hintergrundthreads. Die Option connect wird hinzugefügt, um zu steuern, ob diese Threads sofort gestartet werden oder wenn der Client zum ersten Mal verwendet wird.
Sie bieten auch eine ‚Abhilfe‘, wenn Sie direkt, ob die Verbindung erfolgreich mit diesem gegründet wurde
from pymongo.errors import ConnectionFailure
client = MongoClient(connect=False)
try:
result = client.admin.command("ismaster")
except ConnectionFailure:
print("Server not available")
Der Grund für die Verwendung der oben client.admin.command("ismaster")
ist aufgrund der Tatsache, wissen wollen, dass keine besonderen Berechtigungen müssen ausgeführt werden
Jede Operation kann verwendet werden, um festzustellen, ob der Server verfügbar ist. Wir wählen Sie den Befehl "ismaster" hier, weil es billig ist und nicht erfordert Auth, so ist es eine einfache Möglichkeit, um zu überprüfen, ob der Server verfügbar ist.
- 1. DRF - Überprüfen Sie Benutzerberechtigungen
- 2. PyMongo MongoClient SSH Verbindung
- 3. pymongo: MongoClient oder Verbindung
- 4. Verbindung zurückgesetzt von Peer pymongo
- 5. So testen Sie Benutzerberechtigungen für die Datenbank
- 6. Pymongo Verbindung Pooling und Client-Anfragen
- 7. Benutzerberechtigungen für Inhalte in Django
- 8. SQL Server Benutzerberechtigungen Audit
- 9. Wie überprüfen Sie die socket.io-Verbindung lokal?
- 10. OpenFire Server überprüfen Verbindung für XMPP
- 11. Eine bessere Möglichkeit, Benutzerberechtigungen für Elemente festzulegen, die Bindungen verwenden
- 12. Django admin: Benutzerberechtigungen für Proxy-Modell
- 13. Benutzerberechtigungen in serene für Visual Studio
- 14. Wie können Benutzerberechtigungen für Jenkins eingeschränkt werden?
- 15. Überprüfen, ob die ADODB-Verbindung offen ist
- 16. überprüfen Sie die Verbindung in Jersey
- 17. MongoDB: Überprüfen Sie die Verbindung zu DB
- 18. Objective-C: Überprüfen Sie die IP-Verbindung
- 19. PyMongo-Unterstützung für Teilfeld-Projektionen
- 20. DocumentDB Benutzerberechtigungen - nach Partitionsschlüssel?
- 21. Cordova Geolocation, warten auf Benutzerberechtigungen
- 22. mysql: Benutzerberechtigungen angeben
- 23. Überprüfen WCF-Verbindung
- 24. Anderenfalls Benutzerberechtigungen yii2
- 25. PyMongo auf dem Kolben
- 26. Pycharm Debug und Benutzerberechtigungen
- 27. Benutzerberechtigungen von django Admin
- 28. wie man Benutzerberechtigungen gewährt
- 29. Wie überprüfen Sie die Berechtigungen für fremde Tabellen auf Postgres
- 30. Warum wirft PyMongo AutoReconnect?
Hat meine Antwort für Sie funktioniert? – DAXaholic