mongodbは、RDBではないので、その特性を理解しつつ状況に合わせて利用することが大切です。nodeとの相性は抜群ですのでnode + mongo + expressなどで利用するパターンが多くあります
ユーザー管理方法
rootのパスワードが、rootとして設定されているmongodbでユーザー管理を行う方法です。今回はtestデータベースへのユーザー管理とします
> use admin
> db.auth("root", "root")
1
> use test
switched to db test
ユーザーを追加します
> db.createUser({
... user: "sato",
... pwd: "sato",
... roles: [{role: "readWrite", db: "test"}]
... })
Successfully added user: {
"user" : "sato",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
権限を追加してみます
> db.grantRolesToUser("sato", ["userAdmin"])
> db.getUsers()
[
{
"_id" : "test.sato",
"userId" : UUID("20bb2d33-da13-4e87-bfca-4b7b61f3d84c"),
"user" : "sato",
"db" : "test",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
},
{
"role" : "userAdmin",
"db" : "test"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
]
権限削除します
> db.revokeRolesFromUser("sato", ["userAdmin"])
> db.getUsers()
[
{
"_id" : "test.sato",
"userId" : UUID("20bb2d33-da13-4e87-bfca-4b7b61f3d84c"),
"user" : "sato",
"db" : "test",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
]
ユーザーを削除します
> db.dropUser("sato")
true
> db.getUser()
[ ]
コメント