Answers:
创建用户而不先添加超级用户时,我遇到了类似的问题。以下步骤有助于解决该问题:
sudo
(sudo vi mongodb.conf
)打开MongoDB配置文件。/etc/
文件夹中找到该文件。"auth = true"
。sudo service mongod stop
)sudo service mongod start
)然后使用以下命令创建“ root”超级用户:
use admin
db.createUser({user:"admin",pwd:"password",roles:[{role:"root",db:"admin"}]});
供参考https://docs.mongodb.com/manual/reference/built-in-roles/#superuser-roles
返回并取消注释"auth=true"
。停止并启动/重新启动mongodb服务。
如果您将副本集与keyfile
使用内部身份验证的副本集成员之间的安全性
密钥文件用于复制中的身份验证。
security:
keyFile: <path-to-keyfile>
replication:
replSetName: <replicaSetName>
您可以使用以下命令以管理员身份登录mongod:
mongo -u __system -p "$(tr -d '\011-\015\040' < path-to-keyfile)" --authenticationDatabase local
后记您可以创建或修改您的管理员用户。
内部角色
__system
MongoDB将此角色分配给代表集群成员的用户对象,例如副本集成员和mongos实例。该角色使其所有者有权对数据库中的任何对象执行任何操作。除特殊情况外,请勿将此角色分配给代表应用程序或人工管理员的用户对象。
检查此问题的答案,可能会有所帮助
https://stackoverflow.com/questions/20117104/mongodb-root-user
基本上,如果您仍然有权访问服务器,则可以访问Admin
数据库。
此页面还有更多内容http://docs.mongodb.org/v2.4/reference/user-privileges/
请注意,2.6版更改了其完全工作方式。对于2.6,您需要花更多时间在http://docs.mongodb.org/manual/security/
您必须停止Mongo,删除管理文件,然后启动Mongo
sudo service mongod stop
mv /data/admin.* .
sudo service mongod start