J'ai installé Couchdb V 0.10.0 et tente de lui parler via Python à partir de la classe Couch téléchargée à partir de Couchdb Wiki. Le problème est le suivant: i manuelle a modifié le fichier local.ini pour inclure mon identifiant OSX standard et mon mot de passe OSX. J'ai maintenant un accès complet via Futon mais pas de joie WRT Python. Est-ce un problème d'en-tête HTTP? p> à une perte - merci! p> p>
6 Réponses :
Le classement Si vous souhaitez transmettre un nom d'utilisateur et un mot de passe, vous devrez modifier la catégorie même pour les autres méthodes de requête HTTP. P> La documentation sur l'authentification de base est ici: p> Couch code> dans l'exemple ne transmet aucune information d'authentification à la base de données. Ce n'est donc pas un miracle qu'il n'autorise pas les opérations privilégiées. Donc, vos seules options sont:
Couch code>. Envoi d'un
Authorisation Code> HTTP Demander en-tête est plus facile, car la classe Couch utilise la classe
httplib.httpconnection code>. Vous pouvez ajouter une telle en-tête à côté du
accepter code> un de la manière: p>
Documentation sur les fonctionnalités de sécurité de CouchDB: wiki.apache.org/couchdb/security_features_overview
Vous pouvez également faire:
db = couchdb.Database("http://your.url/yourdb") db.resource.http.add_credentials(username, password)
Ne semble pas être une propriété .http dans la ressource, mais il y a Couch.Resource.Credentials. Donc j'ai fait Couch.Resource.Credentials = (server_user, server_passwd) qui fonctionne pour moi.
Il existe plusieurs correctifs pour Python-Couchdb qui permettent l'authentification. Le code sera probablement inclus dans la version 0.7, mais jusque-là, vous pouvez utiliser la fourchette à http: // github. com / mdornseif / couchdb-python - il vous permet d'utiliser http: // utilisateur: PASS@127.0.0.1: 5984 / URL de type. p>
http: // Blogs.23.nu/c0re/2009/12/Running-A-CouchdB-Cluster-on-amazon-ec2/ (en bas) montre comment utiliser des mots de passe CouchDB. P>
Il suffit de le transmettre dans le cadre de l'URI ... Python-Couchdb analimuera l'utilisateur / le transmettre et les utilisera: P>
Cela est vrai pour Python-Couchdb 0.7 et plus, assurez-vous que vous êtes à jour.
Pour concourer la réponse de David, (c'est-à-dire comment je le fais en utilisant le module Couchdb 0.8 en Python 2.6 avec Couchdb 1.0.2 ")
couch = couchdb.Server(couch_server) couch.resource.credentials = (USERNAME, PASSWORD)
travaillé pour moi dans une situation similaire ... Une fois que je me suis souvenu de mettre mon nom d'utilisateur et mon mot de passe dans des citations! C'est un peu implicite dans la réponse de Lysdexia ici, mais je le mentionne ici au cas où quelqu'un d'autre manque qu'à la fin d'une journée à la fin. Sauf si bien sûr, vous ne les avez pas définis ailleurs et utilisez simplement des noms de variables ici.
Je voulais juste confirmer que j'ai pu utiliser cela sur la version 1.0 de la bibliothèque, en cours d'exécution sur Debian Wheezzy contre Couchdb 1.6.1, où le mot de passe de l'administrateur a été défini dans local.ini sous [Administrations]. Je suppose que cela fonctionnera avec des utilisateurs normaux aussi.
ci-dessus sont tous agréables; Mais j'ai constaté que pour les méthodes de validation OAuth par rapport à la base de base, cela fonctionne vraiment bien: Remarque: cela ne fonctionnera pas avec l'authentification de base; Dans un tel cas, Fviktor a ce que je considère comme la meilleure réponse. Vous pouvez également examiner le matériel de référence de sécurité qu'il lié si vous êtes intéressé par des sessions d'authentification persistantes. P> P>
Quelle bibliothèque Python utilisez-vous? Il y a plusieurs classées sur la page Python Wiki ( wiki.apache.org/couchdb/getting_started_with_python )
Merci Andyuk - J'utilise exemple le code sur la page wiki car il est le plus simple. J'essaie également de trouver Couchdb Doc sur la désactivation de l'authentification (localement)