我使用以下说明为 mongo 创建了一个管理员用户:
http://docs.mongodb.org/manual/tutorial/add-user-administrator/ http://docs.mongodb.org/manual/tutorial/add-user-administrator/
从 mongo 客户端看来我可以进行身份验证:
> use admin
switched to db admin
> db.auth('admin','SECRETPASSWORD');
1
>
但我无法以任何其他方式连接。例如:
mongo -u admin -p 秘密密码
给出错误:
JavaScript execution failed: Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:L228
I have auth = true
in etc/mongod.conf
.
我缺少什么?
身份验证在数据库级别进行管理。当您尝试使用数据库连接到系统时,mongo 实际上会检查您在集合中提供的凭据<database>.system.users
。因此,基本上当您尝试连接到“测试”时,它会在中查找凭据test.system.users
并返回错误,因为它找不到它们(因为它们存储在admin.system.users
)。拥有从所有数据库读取和写入的权限并不意味着您可以直接连接到它们。
您必须首先连接到保存凭据的数据库。尝试:
mongo admin -u admin -p SECRETPASSWORD
欲了解更多信息,请检查此http://docs.mongodb.org/manual/reference/privilege-documents/ http://docs.mongodb.org/manual/reference/privilege-documents/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)