我有一个node js
程序,它使用mongodb
作为其dbs,看起来像这样:
show dbs
test
eas
use eas
show collections
nodeurls
nodes
users
在这个阶段,每个人都可以访问mongo shell并查看所有集合及其中的数据。但是,我想添加身份验证,以便有人首先必须对mongo shell进行身份验证,然后才能查看mongo db数据。
我找到了这个:https://docs.mongodb.com/manual/core/authentication/
并尝试使用db.auth()
方法,但我不明白这是如何完全有效的。
我假设我首先要创建一个用户(我只想让一个用户使用db mongo shell)然后用户需要进行身份验证吗?
对此有任何帮助将不胜感激!
答案 0 :(得分:0)
关于这一点
但是,我想添加身份验证,以便有人首先必须对mongo shell进行身份验证,然后才能查看mongo db数据。
根据文档here,我通过以下方式创建了用户名/密码身份验证。
在admin db中以这种方式创建用户。
cell.postImageView.clipToBounds = true
因此,身份验证适用于所有数据库。 所以显示dbs,显示任何数据库中的集合都可以。
连接shell的方法是,
使用参数auth
启动mongodC:\ MongoDB \ Server \ 3.2 \ bin \ mongod.exe --auth --port 27017
然后打开带身份验证的mongo shell
C:\ MongoDB \ Server \ 3.2 \ bin \ mongo.exe --port 27017 -u“sfk”-p“sfk”--authenticationDatabase“admin”
其中u - 用户名,密码
现在我们可以在任何数据库上发出任何命令。
我们还可以对特定数据库的用户进行身份验证,如文档中所示。
db.CreateUser({
"user" : "sfk",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}]
})
使用db.auth
启动mongo shell而不进行身份验证。然后转到admin db。
db.createUser(
{
user: "reportsUser",
pwd: "12345678",
roles: [
{ role: "read", db: "reporting" },
{ role: "read", db: "products" },
{ role: "read", db: "sales" },
{ role: "readWrite", db: "accounts" }
]
}
)
现在用户已通过身份验证。
如果需要额外的详细信息,请在评论中发帖。