auth = true在mongodb 32Bit Linux无法正常工作

时间:2013-08-07 11:57:11

标签: linux mongodb authentication configuration 32-bit

我在具有相同配置的64位和32位Linux服务器上使用mongodb,其中在两个配置文件中都设置了选项auth=true

虽然64位系统需要身份验证才能运行show usersshow collections等命令,但32位版本会为您提供所有请求的信息,而不会在之前运行db.auth()

看起来,32位版本忽略了配置文件中的auth=true选项。

那么:如何在32位系统上运行mongodb启用auth?

3 个答案:

答案 0 :(得分:2)

32位版本应该支持身份验证。但有可能:

  • 它使用不同的配置文件(在启动MongoDB时使用:-f /etc/mongodb.conf作为选项)您可以在命令行中指定--auth
  • 由于数据库为空并且根本没有设置用户,因此不需要身份验证。只要您添加用户,就会需要db.auth()
  • 您没有定义admin数据库的用户。如果没有这个,你可以随时连接localhost。

答案 1 :(得分:0)

关键是,身份验证已禁用,因为没有添加数据库用户,只有特定数据库的用户。使用localhost连接到此数据库会导致“auth” - 自由环境。 (请参阅@Derick的回答,指出可能的原因。)

回到这个问题:

  

那么:如何在32位系统上运行mongodb启用auth?

重点是:auth处于活动状态,但不适用于localhost的连接。要从localhost启用auth以进行连接,需要以下启动选项:

enableLocalhostAuthBypass=0

答案 2 :(得分:0)

我完成了这个,角色是必要的

db.createUser(
   {
user: "youloginname",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)