当前位置: 首页 > 面试题库 >

使用Java连接到MongoDB服务器实例期间的身份验证

潘阳舒
2023-03-14
问题内容

是否可以做类似的事情:

MongoClient mongo = new MongoClient(ip, port, usrName, password)

在JAVA中类似于MongoVUE或其他基于SQL的数据库的身份验证方法。

在那里,身份验证是在连接数据库实例期间完成的。

我在MongoClient Java文档中看不到适当的实例方法

而在这样的认证(可选)官方文档

不符合我的目标,因为它需要更改应用程序中所有现在不使用身份验证的现有查询方法。

使用Java驱动程序对MongoDB进行身份验证的方式完全符合我的需求,但是mongo
2.10.1发行版中没有com.mongodb.MongoCredential类。


问题答案:

您不需要更改所有现有查询,只需要更改建立MongoClient的逻辑。大多数应用程序将其作为某种Singleton进行,因此添加身份验证只是修改Singleton的问题。令人痛苦的是,没有一个仅采用String,用户名密码为String的签名,但是它的Mongo
Java API令人失望。

您可以选择MongoURI路径,以获取最短的签名…

MongoClient mongo = new MongoClient(
  new MongoClientURI( "mongodb://app_user:bestPo55word3v3r@localhost/data" )
);

或者使用更详细的List 路径

List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds.add( new ServerAddress( "localhost" );
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(
    MongoCredential.createMongoCRCredential(
        "app_user",
        "data",
        "bestPo55word3v3r".toCharArray()
    )
);
MongoClient mongo = new MongoClient( seeds, credentials );


 类似资料:
  • 我已经按照文档中的说明配置了MongoDB服务器https://docs.mongodb.com/manual/core/security-x.509/我使用mongo shell连接,工作正常。 接下来,我尝试连接到相同的服务器form c#驱动程序,但引发超时异常。下面是我的代码 我通过MongoDB服务器日志,我可以看到下面的错误 2017-04-10T11:18:21.559 0530 I

  • 我需要使用jdbc 4.0从java连接到Sql Server 2008。我有一个非常简单的代码: 但我有这个错误: 我按照这个回答:https://stack overflow . com/a/12524566/1554397 我在库/编译中添加了jdbc4.jar SQL 服务器浏览器窗口服务正在运行。 在SQL服务器网络配置中,我选择了在TCP/IP属性上启用。 我将TCP地址设置为1433

  • 连接到服务器时出错:fatal:用户“postgres”的密码身份验证失败 fatal:用户“postgres”的密码身份验证失败

  • 我有一个节点。尝试连接到mongodb的js服务器(使用mongoose): 尽管mongodb已启动并运行,但连接失败。 我得到以下日志: 7月18日星期四13:24:50.124[initandlisten]选项:{dbpath:“/home/pi/mongodb/”} Thu Jul 18 13:24:50.166[initandlisten]正在等待端口27017上的连接 Thu Jul

  • 我只想做一个upsert手术。我有一个JsonDocument,我有一个Couchbase服务器“123.456.789.1011”,里面有一个bucket,称为“TestBucket”。现在,当我使用端口8091的IP地址打开服务器时,它要求我输入用户名和密码,比如“uname”、“pwd”,输入后,它就打开了。我的桶没有任何密码。 这是我的代码,但问题总是在运行代码时,我会得到一个错误 Inv

  • 问题内容: 如何使用node.js连接到mongodb? 我有node-mongodb-native驱动程序。 显然有0个文档。 是这样吗? 用户名和密码放在哪里? 另外,我该如何插入? 谢谢。 问题答案: 根据来源: 连接后: