2016-11-06 17 views
1

mongoengineで認証データベースを使用するmongodbデータベースに接続する方法がわかりません。認証データベースを使用するmongoengine

mongo hostname:27017/myApp -u "test" -p "test" --authenticationDatabase adminを実行する必要がありますが、これをmongoengineの引数として渡す場所がわかりませんので、管理データベースを認証に使用しますが、モデルのmyAppデータベースに接続しますか?

私はそれがPyMongoガイドで説明していますこれはどこであると信じて:

https://api.mongodb.com/python/current/examples/authentication.html

>>> from pymongo import MongoClient 
>>> client = MongoClient('example.com') 
>>> db = client.the_database 
>>> db.authenticate('user', 'password', source='source_database') 

と私はmongoengineにこれを追加プルリクエストを見つけました:

https://github.com/MongoEngine/mongoengine/pull/590/files

それあなたはconnectの引数としてauthentication_sourceをのように追加するだけです。それがより良く文書化されていればいいだろう。

http://docs.mongoengine.org/apireference.html?highlight=authentication_source

答えて

4

mongoengine connecting guideconnect()方法のサポートURIスタイルの接続によります。その意味で、すなわち

connect(
    'project1' 
    host='mongodb://username:[email protected]:port1/databaseName' 
) 

、あなたはまた、次のように認証ソース・データベースを指定することができます。

"mongodb://username:[email protected]:port1/database?authSource=source_database" 

は、より多くのMongoDBのURIの例についてもMongoDB connection string URI参照してください。 またAuthentication options through connection string

+0

、認証ソースを明示的に記述してする必要がありますので、あなたが更新さ – Rob

+1

@Robを動作しません送信したもの。私はURIから認証ソースを指定するリンクから情報を抽出しました。 –

1

解決策は私のためには機能しません。何が効きますか: pymongo MongoClientメソッドと同じように、authSource引数をconnectメソッドに追加するだけです。例:

これは私が求めているものではありません
connect('database_name', host='host', username="username", 
password="password",authSource='authentication_database_name') 
関連する問題