2017-02-21 9 views
0

私はmongoengineがは読み込み(のみ)にアクセスしてusignのmongoengineをMongoDBのために接続できません

MongoDB = 3.4.1 
Python = 2.7.5 
PyMongo = 3.4.0 
MongoEngine = 0.11.0 

が、私はそうのように見える.iniファイル内の情報とデータベース に接続していますLinux環境で実行されているで作成したCLIツールを働いています:Pythonで

[DATABASE] 
uri=mongodb://%(user)s:%(password)[email protected]%(host)s/%(dbname)s 
dbname=myapp 
user= 
host=localhost 
password= 

:あり

DB_CONN = mongoengine.connect(conf['dbname'], host=conf['uri']) 

現在データベース内の2人のユーザーです。 readWriteロールを持つreadロール とユーザーusrRWを持つユーザーusrRO。 .iniファイルに ユーザusrRWの名前とパスワードを使用してdbに接続すると、すべて動作します。 しかし、ユーザーusrROの資格情報を使用して接続するには(ユーザーusrROはMongoのCLIインタフェースからデータを読み取ることができる)につながる:

pymongo.errors.OpeartionFailure: not authorized on myapp to execute command 
{ createIndexes: <collection_name>, 
    indexes: [ { unique: true, 
       backgroung: false, 
       sparse: false, 
       key: { name: 1 }, 
       name: "name_1" } ], 
    writeConcern: {} } 

ユーザーusrRO資格情報を使用する方法、または準備だけでデータベースに を接続するための他の方法はありますmongoengineを使った特権?

答えて

0

私はmongo-engine gitlabの問題で答えを見つけました。

'auto_create_index': False 

あなたのオブジェクトメタに簡単に追加してください。これは、複雑なオブジェクト構造では機能しない可能性があります。

関連する問題