-
Type:
Bug
-
Resolution: Cannot Reproduce
-
Priority:
Blocker - P1
-
None
-
Affects Version/s: 2.8, 3.0
-
Component/s: None
-
Environment:MacOSX, Ubuntu
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Hello,
All of this was tested with mongo 2.6.8 and mongo 3.0
and i've tested under ubuntu 12.04 for a few but since i'm trying on my own laptop (Mac os X mavericks).
I can not create database in the second db connection with python-mongo.
The user i've created has this roles
> db.getUsers()
[ { "_id" : "users_dev.look",
"user" : "look",
"db" : "users_dev",
"roles" : [
{
"role" : "root",
"db" : "admin"
},
{
"role" : "readWrite",
"db" : "users_dev"
},
{
"role" : "dbOwner",
"db" : "users_dev"
},
{
"role" : "dbAdmin",
"db" : "users_dev"
}
] }]
then i'm testing my user in mongo:
mongo users_dev -u look -p
> db.user_db.insert({ _id: ObjectId('54fdc2e7664348a5b8523656'), roles: { campaign_api: { history: [], role: "ghost", _cls: "UserAPI" } }, login: "backend", password: "G" })
WriteResult({ "nInserted" : 1 })
bash-3.2$ mongo users_dev -u look -p
MongoDB shell version: 3.0.0
Enter password:
connecting to: users_dev
> db.user_db.find()
{ "_id" : ObjectId("54fdc2e7664348a5b8523656"), "roles" : { "campaign_api" : { "history" : [ ], "role" : "ghost", "_cls" : "UserAPI" } }, "login" : "backend", "password" : "G" }
> db.user_db.remove(ObjectId("54fdc2e7664348a5b8523656"))
WriteResult({ "nRemoved" : 1 })
> db.user_db.find()
> db.user_db.insert({1:1})
WriteResult({ "nInserted" : 1 })
as everything seem to work i'm now trying with python-mongo:
# Connection 1.
Going to connect to db: {'urli': 'mongodb://localhost/', 'pwd': 'pwd', 'db': 'promo', 'user': 'write', 'port': 27017}
Connected to Db MongoClient('localhost', 27017)
# Connection 2. db users_dev
Going to connect to db: {u'pwd': u'pwd', u'urli': u'mongodb://localhost/', u'port': 27017, u'user': u'look'} - users_dev
Connected to Users MongoClient(u'localhost', 27017)
# The error that happen when i try to save my own document
# UserDb is defined by myself as a model
# u = UserDb(login="test", password="test", roles="viewer")
# u._meta["db_alias"] = alias_connection_2
# u._collection = None
# u.save()
Could not save document (command SON([('createIndexes', u'user_db'), ('indexes', [{'name': u'login_1', 'key': SON([('login', 1)]), 'unique': True, 'background': False, 'sparse': False, 'dropDups': False}])]) on namespace users_dev.$cmd failed: not authorized on users_dev to execute command { createIndexes: "user_db", indexes: [ { name: "login_1", key: { login: 1 }, unique: true, background: false, sparse: false, dropDups: false } ] })
Could not save document (not authorized on users_dev to execute command { insert: "user_db", ordered: true, writeConcern: { w: 1 }, documents: [ { _id: ObjectId('54fdc66e664348a9cd1e4e43'), roles: { campaign_api: { history: [], role: "ghost", _cls: "UserAPI" } }, login: "backend", password: "G" } ] })
It's probably my fault, but after posting on stackoverflow, with no answer i lose hope.
Is this a bug from me or from your side ?
Thanks a lot.