簡體   English   中英

MongoDB 無權查詢 admin.system.users

[英]MongoDB not authorized for query admin.system.users

我對 MongoDb 有點陌生,我正在使用 MongoDb v.2.4。這里的問題是,當我使用 --auth 參數運行 mongod 時,即使經過身份驗證,我也無法執行諸如“顯示用戶”之類的簡單操作。 但是如果我在沒有 --auth 參數的情況下運行 mongod 就可以了。

> use admin
switched to db admin
> db.auth("dbadmin","mypassword")
1
> show users
**Thu Feb 27 16:50:17.695 error: { "$err" : "not authorized for query on admin.sys
tem.users", "code" : 16550 } at src/mongo/shell/query.js:128**

首先,您應該在沒有--auth情況下在 localhost 上運行 mongod 並創建具有您需要的必要角色的用戶。 在您的情況下,您應該添加userAdminAnyDatabaseuserAdmin角色。 您可以使用--auth運行 mongod 並通過此用戶進行身份驗證以遠程訪問system.users集合。
你可以在這里閱讀它。

> use admin
switched to db admin
> db.grantRolesToUser("your_admin_name" ,[ "root"])

此命令將以管理員身份授予您對任何數據庫的所有權限。

我認為你的管理員用戶沒有像 mongo 所說的那樣配置。

我剛剛在另一個線程中回答了一個問題,並逐步進行了解釋: 未授權在 mongodb 上查詢 admin.system.namespaces

嘗試一下。

不是為了 OP,而是為了那些在互聯網上搜索到的人

Failed: error counting admin.system.users: not authorized on admin to execute command { count: "system.users", query: {}, $db: "admin" }

答案很可能是您需要在連接字符串中指定數據庫名稱。 例如,就我而言,我正在做一個mongorestore ,就像這樣

mongorestore --uri=mongodb+srv://[username]:[password]@[mongo-server] --dir=[backup-file]

我需要做的是

mongorestore --uri=mongodb+srv://[username]:[password]@[mongo-server]/[database-name] --dir=[backup-file]

同樣的事情也適用於mongodump 關鍵是它默認嘗試連接到admin數據庫,而這可能不是您想要做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM