【问题标题】:Mongodb C# driver - can't use admin authentication to access other databasesMongodb C# 驱动程序 - 无法使用管理员身份验证访问其他数据库
【发布时间】:2011-10-09 11:53:26
【问题描述】:

当您在 MongoDB 控制台中以管理员用户(管理数据库的用户)身份登录时,您可以完全访问同一服务器上的任何数据库,而无需登录每个数据库。 但是,如果我使用官方 C# 驱动程序并提供连接字符串到 admin 数据库,那么当我尝试访问任何其他数据库时,我会收到身份验证错误。它发生在 MongoServerInstance.AcquireConnection() 中,它试图重新验证连接并根据其他数据库检查管理数据库凭据,这当然会失败。

我想要实现的是 - 我提供管理员连接字符串并访问所有数据库,而无需登录每个数据库,就像控制台一样

我可以做些什么来使 C# 驱动程序的工作方式与控制台在身份验证方面的工作方式相同?

【问题讨论】:

    标签: mongodb mongodb-.net-driver


    【解决方案1】:

    在我挖掘了MongoDB驱动的验证码之后,我发现你需要在连接字符串的admin用户名后面加上'(admin)'来告诉驱动这实际上是一个管理员登录。之后,一切都按预期工作!

    【讨论】:

    • 呸,想象一下。你在哪里找到的 ;) +1
    • @Andrew - 深入源代码。有人会认为它应该被记录在案......
    • 你能举个例子连接字符串吗?这是使用 adminAnyDatabase 用户吗?
    • 那么是否可以使用 C# 驱动程序为每个数据库提供单独的凭据?我看到另一个 SO 帖子通过使用 GetDatabase() 调用说是,但与该帖子相比,该调用没有接受凭据的重载,只有第二个参数是 MongoDatabaseSettings 对象。
    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多