我有一个node js程序,它使用mongodb作为其dbs,它看起来如下所示:
show dbs
test
eas
use eas
show collections
nodeurls
nodes
users在这个阶段,每个人都可以访问mongo并查看其中的所有集合和数据。但是,我想添加身份验证,这样某人首先必须对mongo进行身份验证,然后才能查看mongo数据。
我发现了这个:https://docs.mongodb.com/manual/core/authentication/
并且尝试过使用db.auth()方法,但是我不明白它是如何完全工作的。
我假设我首先必须创建一个用户(我只想要一个用于db mongo shell的用户),然后用户需要进行身份验证?
在这方面的任何帮助都将不胜感激!
发布于 2016-12-08 15:36:31
对于这一点
但是,我想添加身份验证,这样某人首先必须对mongo进行身份验证,然后才能查看mongo数据。
根据文档这里,我以以下方式创建了用户名/密码身份验证。
以这种方式在admin中创建用户。
db.CreateUser({
"user" : "sfk",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}]
})因此,身份验证适用于所有数据库。所以显示dbs,在任何数据库中显示集合都可以工作。
连接外壳的方法是,
从参数auth开始
C:\MongoDB\Server\3.2\bin\mongod.exe --奥斯丁--端口27017
然后打开带有身份验证的mongo。
C:\MongoDB\Server\3.2\bin\mongo.exe --端口27017 -u "sfk“-p "sfk”--认证数据库"admin“
其中u-用户名,p-密码
现在,我们可以在任何数据库上发出任何命令。
我们还可以对特定数据库的用户进行身份验证,如文档中所示。
db.createUser(
{
user: "reportsUser",
pwd: "12345678",
roles: [
{ role: "read", db: "reporting" },
{ role: "read", db: "products" },
{ role: "read", db: "sales" },
{ role: "readWrite", db: "accounts" }
]
}
)使用db.auth
在没有认证的情况下启动mongo。然后移到管理分局。
use admin
db.auth("username", "psw")现在对用户进行身份验证。
如果需要任何额外的细节,请发表评论。
https://stackoverflow.com/questions/41040335
复制相似问题