Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongo 3.2紧急停堆-SHA-1认证问题_Mongodb_Security - Fatal编程技术网

Mongodb Mongo 3.2紧急停堆-SHA-1认证问题

Mongodb Mongo 3.2紧急停堆-SHA-1认证问题,mongodb,security,Mongodb,Security,我很难让基本的Mongo安全性在我的ubuntu 14.04实例上运行。我安装了Mongo 3.2我的/etc/mongod.conf文件没有身份验证,因此当通过sudo服务mongod start(或启动时)启动Mongo时,我可以从Mongo控制台编辑安全信息。有一个机会,我以前搞砸了我的身份验证系统,我先创建了一个db.system.version.remove({}),然后是一个db.system.version.insert({“\u id”:“authSchema”,“current

我很难让基本的Mongo安全性在我的ubuntu 14.04实例上运行。我安装了Mongo 3.2我的/etc/mongod.conf文件没有身份验证,因此当通过sudo服务mongod start(或启动时)启动Mongo时,我可以从Mongo控制台编辑安全信息。有一个机会,我以前搞砸了我的身份验证系统,我先创建了一个db.system.version.remove({}),然后是一个db.system.version.insert({“\u id”:“authSchema”,“currentVersion”:3}),所以为了修复这个问题(或者只是为了安全起见),我删除了所有用户并运行了以下per

这导致了一个好的结果。然后,我创建了我的管理员用户,如下所示:

use admin
db.createUser( { user: "siteUserAdmin", pwd: "PASSWORD", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
这将返回所创建用户的结果。然后,我通过执行以下操作对其进行了测试(仍然在当前mongod实例关闭auth的情况下):

use admin
db.auth(siteUserAdmin, "PASSWORD")
use admin
db.auth(siteUserAdmin, "PASSWORD")
这返回了1个成功,到目前为止还不错,看起来用户正在工作。接下来,我用两种方法之一停止并启动mongod,以尝试启用安全性。一个是编辑/etc/mongod.conf文件,在#security部分下面包含authorization:enabled。sudo服务mongod start然后将无法工作(虽然它说正在运行,但随后的sudo服务mongod状态显示为stopped,我无法在shell中连接)。因此,我按照以下建议将mongod作为守护程序服务启动,效果更好:

这可以工作,我可以访问Mongo控制台,然后输入use admin,这将成功切换到db admin,然后我再次尝试:

db.auth(siteUserAdmin, "PASSWORD")

这是我的问题,现在我得到一个0,错误:身份验证失败。我尝试了一些不值得一提的事情,似乎无法验证,请说出一个很长的问题,我认为额外的情况可能与问题有关,知道我做错了什么吗?

好的,我用一种启动方法解决了问题。在我的/etc/mongod.conf文件中,我有以下内容:

#security:
  authorization: enabled
这不会在sudo服务mongod启动时启动。更新到以下内容(即从安全部分删除注释)修复了此问题:

security:
  authorization: enabled
这也修复了授权,我可以成功运行:

security:
  authorization: enabled
use admin
db.auth(siteUserAdmin, "PASSWORD")