couchDB,python和身份验证

时间:2009-11-21 19:15:41

标签: python couchdb

我安装了couchDB v 0.10.0,并试图通过从couchDB wiki下载的Couch类中的python进行交谈。问题是:

Create database 'mydb': {'error': 'unauthorized', 'reason': 'You are not a server admin.'}

我手动编辑了local.ini文件,以包含我的标准osx登录名和密码。我现在可以通过蒲团完全访问但没有快乐WRT python。这是http头问题吗?

亏本 - 谢谢!

5 个答案:

答案 0 :(得分:19)

大卫的答复,(即“这就是我在python 2.6中使用模块CouchDB 0.8与couchdb 1.0.2进行的操作”)

couch = couchdb.Server(couch_server)

couch.resource.credentials =(USERNAME,PASSWORD)

答案 1 :(得分:6)

你也可以这样做:

db = couchdb.Database("http://your.url/yourdb")
db.resource.http.add_credentials(username, password)

之后您的所有请求都应该有效。

答案 2 :(得分:3)

只需将其作为URI的一部分传递... python-couchdb将解析用户/传递并使用它们:

http://user:pass@localhost:5984

答案 3 :(得分:1)

以上都很好;但我发现,对于oauth验证方法与基本auth,这非常有效:

from couchdb import Server, Session
auth = Session()
auth.name = USERNAME
auth.password = PASSWORD
s = Server('http://localhost:5984/', session=auth)
db = s['dbname']

注意:这不适用于基本身份验证;在这种情况下,fviktor拥有我认为最好的答案。如果您对持久性身份验证会话感兴趣,也可以查看他链接到的安全性参考资料。

答案 4 :(得分:0)

python-couchdb有几个补丁可以启用身份验证。该代码可能会包含在0.7版本中,但在此之前您可以在http://github.com/mdornseif/couchdb-python使用它 - 它允许您使用http://user:pass@127.0.0.1:5984/类型的URL。

http://blogs.23.nu/c0re/2009/12/running-a-couchdb-cluster-on-amazon-ec2/(在底部)显示了如何使用CouchDB密码。

相关问题