11

couchDB v 0.10.0をインストールし、couchDBwikiからダウンロードしたCouchクラスからPython経由で通信しようとしています。問題は次のとおりです。

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

local.iniファイルを手動で編集して、標準のosxログインとパスワードを含めました。私は今、布団を介して完全にアクセスできますが、喜びのWRTpythonはありません。これはhttpヘッダーの問題ですか?

途方に暮れて-ありがとう!

4

6 に答える 6

23

Davidの返信に同意するには、(つまり、「これは、python 2.6でcouchdb 1.0.2を使用してモジュールCouchDB 0.8を使用する方法です」)

couch = couchdb.Server(couch_server)

couch.resource.credentials = (USERNAME, PASSWORD)
于 2011-02-14T16:16:15.477 に答える
6

次のこともできます。

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

その後、すべてのリクエストが機能するはずです。

于 2009-12-04T18:35:36.723 に答える
5

このCouch例のクラスは認証情報をデータベースに渡さないため、特権操作が許可されないことは奇跡ではありません。したがって、唯一のオプションは次のとおりです。

  • 認証を完全に無効にします(前述のとおり)
  • URI の一部としてユーザー名とパスワードを渡す
  • ユーザー名とパスワードをAuthorizationHTTP 要求ヘッダーとして渡す

ユーザー名とパスワードを渡したい場合は、Couchクラスを変更する必要があります。AuthorizationCouch クラスがクラスを使用するため、HTTP 要求ヘッダーの送信は簡単httplib.HTTPConnectionです。このようなヘッダーを次の方法で追加できますAccept

headers = {
    "Accept": "application/json",
    "Authorization": "Basic " + 'username:password'.encode('base64')[:-1]}

他の HTTP リクエスト メソッドについても同様です。

基本認証に関するドキュメントは次のとおりです。

http://books.couchdb.org/relax/reference/security

于 2009-11-22T02:37:41.550 に答える
3

URIの一部として渡すだけです...python-couchdbはユーザーを解析/パスアウトして使用します:

http:// user:pass @ localhost:5984

于 2010-11-29T23:45:38.073 に答える
1

上記はすべて素晴らしいです。しかし、oauth 検証方法と基本認証の場合、これは非常にうまく機能することがわかりました。

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

注: これは基本認証では機能しません。そのような場合、fviktor は私が最良の答えであると考えるものを持っています。永続的な認証セッションに興味がある場合は、彼がリンクしているセキュリティ参考資料を調べることもできます。

于 2012-03-09T11:33:35.333 に答える
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 パスワードの使用方法を示しています。

于 2009-12-26T18:56:38.010 に答える