mongodbの使い方(ユーザー管理)

技術関連

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()
[ ]

コメント

タイトルとURLをコピーしました