我在mongo上有一个分片群集(3个副本集,每个副本有3个节点)。所有mongod都使用keyFile选项运行
要查看数据库中的所有用户:
$ mongo --port XXXXX -u USER -p PASSWORD admin <br>
MongoDB shell version: 2.4.12<br>
connecting to: 127.0.0.1:XXXXX/admin<br>
mongos> use admin<br>
switched to db admin<br>
mongos> show users<br>
Tue Dec 16 01:46:17.763 error: { "$err" : "not authorized for query on
admin.system.users", "code" : 16549 } at src/mongo/shell/query.js:128<br>mongos><br>
我认为我错误地创建了第一个没有足够权限的用户管理员。是这样吗?如何查看当前mongo用户的权限?我该怎么做才能解决这个问题?
答案 0 :(得分:0)
您的用户没有必要的权限。
在没有--auth
运行db.getUser()
或db.getRole()
以验证用户权限
向您的用户授予必要的role。请使用db.grantRolesToUser()
clusterAdmin
个角色
db.grantRolesToUser("username", [ { role : "clusterAdmin", db: "admin" } ] )
来自mongodb文档:
如果MongoDB数据库中存在用户,但是没有用户具有创建新用户的相应先决条件,或者您无法访问它们,则必须使用--noauth选项重新启动mongod。 First User Restrictions