簡體   English   中英

Mongo訪問數據庫用戶權限

[英]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.

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