怎么帮同事添加mongo数据库读写权限

34 阅读1分钟

这件事起因是新搭建了一个测试环境,结果之前因为搞权限设置把测试同学的编辑权限给取消了,现在要给他在测试环境加回来,上次怎么重新调整的我给忘了,这次又查了一遍耽误了不少功夫,为了避免下次我又忘了,在这记录一下。

首先,你要有一个admin用户或者权限和admin用户相同的账号,和一个能登录数据库shell控制台的软件,如果你不知道怎么登录,可以试一下 studio ,虽然查看数据库内容我比较喜欢用 MongoDBCompass ,但 studio 进入后直接是shell模式,会比较方便。

接下来是命令时间:

# 切换到admin
use admin;
# 查询名称为test的用户
db.getUser("test");
{
    "_id" : "admin.test",
    "userId" : UUID("50d23e26-a901-4d13-8396-b9f847ebe00f"),
    "user" : "test",
    "db" : "admin",
    "roles" : [
        {
        "role" : "readAnyDatabase",
        "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}
# 如果该用户不存在则创建一个
db.createUser({ user: "test", pwd: "your_password", roles: [] })
# 因为我已经有一个了,所以直接改权限就好了
db.grantRolesToUser("test", [ { role: "readWrite", db: "mydatabase" } ], { w: "majority" })
# 改完之后正常来说重新查询应该就能得到想要的结果了
{
    "_id" : "admin.test",
    "userId" : UUID("50d23e26-a901-4d13-8396-b9f847ebe00f"),
    "user" : "test",
    "db" : "admin",
    "roles" : [
        {
            "role" : "readAnyDatabase",
            "db" : "admin"
        },
        {
            "role" : "readWrite",
            "db" : "mydatabase"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}

大概就是这样