【问题标题】:How to provide pemfile password in pymongo mongoclient in the connection string如何在连接字符串中的pymongo mongoclient中提供pemfile密码
【发布时间】:2014-02-10 06:29:05
【问题描述】:

问题:如何在连接字符串中提供pymongo mongoclient中的pemfile密码?

import pymongo
from pymongo import MongoClient

    sslCAFile = data['COMMON_SETTINGS']['sslCAFile']  //reading cafile path from configurationfile
    sslpemkeyfile = data['COMMON_SETTINGS']['sslpemkeyfile'] //reading pemfile path from configurationfile(which is encrypted with password)

// 现在我需要输入密码来连接。但我在 pymongo 文档和身份验证示例中没有看到任何参数

    connection = 
    MongoClient(mongos_ip,int(mongos_port),ssl=True,ssl_certfile=sslpemkeyfile,ssl_ca_certs=sslCAFile)

//帮我解决这个问题!!!

【问题讨论】:

    标签: mongodb python-2.7 pymongo


    【解决方案1】:

    很遗憾当前版本的pymongo不支持这个功能

    参考: https://jira.mongodb.org/browse/PYTHON-640

    【讨论】:

    • 对,基本上这是 Python 的一个限制。
    【解决方案2】:

    这个呢:

    import ssl
    
    connection = MongoClient(mongos_ip, int(mongos_port),
                             ssl=True,
                             ssl_certfile=sslpemkeyfile,
                             ssl_cert_reqs=ssl.CERT_REQUIRED,
                             ssl_ca_certs=sslCAFile)
    

    来自这里:http://api.mongodb.org/python/current/examples/authentication.html

    【讨论】:

    • @Petersen 如果你这样做,程序仍然会要求输入 sslPemKey 密码。我认为用户需要绕过这一步。
    • 是的.. 我需要绕过密码步骤。它每次都问我。 Mongoclient方法中是否有任何规定。
    • 在 NodeJs 中我们有这样的权利 ..var fs =require('fs'); var cert= fs.readFileSync("/etc/ssl/mongod_server.crt"); var key = fs.readFileSync("/etc/ssl/mongod_server.key"); var conn = mongoose.createConnection('mongodb://localhost:10027/test',{server : {ssl:true,sslKey:key,sslCert:cert,sslPass:'12345'}});
    • 在这个我们可以绕过密码步骤..所以我问在pymongo中有没有类似的
    • 连接URI中有用户名/密码选项 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:端口N]]][/[数据库][?options]]。也许这会奏效? MongoClient 可以使用 URI 代替 addr 和端口: pymongo.MongoClient(uri, ssl=True, ssl_certfile=...)
    猜你喜欢
    • 2016-10-18
    • 1970-01-01
    • 2020-01-14
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多