[英]Enable Access Control in MongoDB doesn't work
當我用作連接字符串時,一切正常: mongodb://0.0.0.0:27017/data
。 使用連接字符串添加啟用訪問控制后: mongodb://user:pwd@0.0.0.0:27017/?authSource=data
停止工作。
我已連接到 mongodb,但在應用程序中我看到請求This request has no response data available
。 但是對於到mongodb://0.0.0.0:27017/data
連接字符串,有數據。
要添加身份驗證,我使用了此指令啟用訪問控制:
我創建了管理員:
> use admin
switched to db admin
> db.createUser(
... {
... user: 'admin',
... pwd: 'password',
... roles: [ { role: 'root', db: 'admin' } ]
... }
... );
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> exit;
我更改了 mongo 配置文件 - mongod.cfg:
security:
authorization: enabled
我以管理員身份登錄:
> use admin
> db.auth('admin','password');
1
我創建了新用戶:
use data
db.createUser(
{
user: "user",
pwd: "pwd",
roles: [
{ role: "dbAdmin", db: "data" },
]
}
)
db.grantRolesToUser(
"user",
[ "readWrite" , { role: "read", db: "data" } ],
{ w: "majority" , wtimeout: 4000 }
)
我使用: mongodb://user:pwd@0.0.0.0:27017/?authSource=data
作為連接字符串,但沒有工作。 我究竟做錯了什么?
我解決了我的問題。 原因是連接字符串中的authSource
。 前:
"connectionString": "mongodb://user:pwd@0.0.0.0:27017/?authSource=data"
后:
"connectionString": "mongodb://user:pwd@0.0.0.0:27017/data"
現在它工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.