机器人框架中的MongoDB身份验证失败

时间:2016-12-09 11:41:45

标签: mongodb robotframework

我尝试通过机器人框架连接并验证mongodb。 遵循以下步骤:

Connect To MondoDB | mongodb://admin:admin@192.20.33.226 | 27017 | 10 | None | <type 'dict'> | False |

成功连接。

尝试从数据库查询

Retrieve Mongodb Records With Desired Fields     dbName | dbCollName | recordJSON | fields | return__id=True | returnDocuments=False 

执行此语句后,我收到以下错误。

OperationFailure: Authentication failed.

日志:

Starting test: MongoConnection.Query from MongoDB
20161209 17:05:05.866 :  INFO : 
| Connect To MondoDB | dbHost | dbPort | dbMaxPoolSize | dbNetworktimeout | dbDocClass | dbTZAware |
| Connect To MondoDB | mongodb://tecnotree:tecnotree@172.20.33.226 | 27017 | 10 | None | <type 'dict'> | False |
20161209 17:05:05.907 :  INFO : | ${allResults} | retreive_mongodb_records_with_desired_fields | clmpreprod | Profile | { "profileDetails.basicDetails.customerCode": "C014519" } | profileDetails.customerCategory.masterCode,profileDetails.customerSubCategory.masterCode | False |
20161209 17:05:05.910 :  FAIL : OperationFailure: Authentication failed.
Ending test:   MongoConnection.Query from MongoDB

我坐在我的MongoDB数据库analysit上并进行了调试,我们开始知道,首先它尝试使用给定的用户凭据连接到adminDB,并在查询时将其连接到实际数据库。

这里,在我们的系统中,admin db和system db的凭据不同,这就是它失败的原因。

我们的db分析师证实,他们不会允许连接到admin db,因为它拥有所有权限。

任何人都可以帮助我,如何连接和查询mongodb,它将无法连接到admin db。

由于 Sarada

2 个答案:

答案 0 :(得分:1)

大多数驱动程序支持相同类型的连接字符串,因此您应该能够将以下查询内容附加到当前连接字符串:

mongodb://username:password@host/database?authSource=authDatabase

答案 1 :(得分:0)

你也应该在连接时提到dbname

    Connect To MondoDB | mongodb://admin:admin@192.20.33.216/userDB | 27017 | 10 | None | <type 'dict'> | False 

Retrieve Mongodb Records With Desired Fields     dbName | dbCollName | recordJSON | fields | return__id=True | returnDocuments=False

这将有效

感谢Kevin的帮助