[英]Mongo access DB user rights
我正在使用 Mongo 3.4 當我登錄到管理數據庫時,我可以看到我的用戶:
> show users
{
"_id" : "admin.jon",
"user" : "jon",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
},
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
{
"_id" : "admin.bill",
"user" : "bill",
"db" : "admin",
"roles" : [
{
"role" : "readWrite",
"db" : "leads"
},
{
"role" : "dbOwner",
"db" : "leads"
}
]
}
注意 bill 是“潛在客戶”數據庫的所有者,應該具有對其的讀寫訪問權限。
但是,當在我的生產服務器上通過 rails c 使用 Mongo Ruby 驅動程序時,我嘗試列出 collections 並出現錯誤:
client = Mongo::Client.new([Rails.application.secrets.mongo], user: 'bill', password: 'xxxxxx', database: "leads")
db = client.database
db.collections
# => Mongo::Auth::Unauthorized (User bill (mechanism: scram) is not authorized to access leads (auth source: leads) (used mechanism: SCRAM-SHA-1): Authentication failed. (on localhost:xxxxx))
我究竟做錯了什么?
在 mongo 客戶端配置中添加auth_source: admin
。 您的 mongo 用戶信息存儲在admin
數據庫中,如果您未通過auth_source
參數指定它,則客戶端會嘗試在您要用於數據的數據庫中查找用戶信息。 在這種情況下,它是leads
數據庫。
錯誤中的通知(auth source: leads)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.