我已经开始使用带有身份验证的MongoDB。根据文档,我使用localhost异常来创建一个只有userAdminAnyDatabase角色的管理用户。一切都很顺利。在使用该数据库之后,当我运行"mongo“客户端并对管理数据库进行授权时,我会得到数字1,表示授权成功。但是,我尝试执行的任何命令都会导致“未经授权”的错误,甚至试图在我刚刚授权的管理数据库中显示集合。
有人能告诉我这是为什么,我怎样才能修好它吗?目前,我在没有身份验证的情况下运行,直到我能够修复这个问题。
发布于 2013-09-03 01:21:30
userAdminAnyDatabase
角色(以及作为扩展的userAdmin
角色)只允许用户读写system.users
集合以管理数据库的用户。它不允许用户读取或写入数据库的实际集合。为此,您需要授予read
或readWrite
角色。
发布于 2017-07-07 00:25:05
尝试运行下面的步骤来解决身份验证问题:
示例命令:
mongod --port 27017 --dbpath /data/db1
use educationDb;
db.createUser({ user : 'readonly', pwd: 'readonly', roles : ['read']})
db.xyz.insert({"name":"nix.education"})
mongod --auth --port 27017 --dbpath /data/db1
use educationDb;
db.auth('readonly','readonly')
https://askubuntu.com/questions/336886
复制