如何在Mongoose中执行用户管理命令(db.createUser,db.dropUser)?

问题描述 投票:0回答:1

我需要使用Mongoose管理mongoDB用户。更具体地说,我需要使用nodeJS脚本配置数据库用户,因此需要创建mongoDB用户。

在MongoDB shell中,我正在使用以下内容:

> db.createUser(
...     {
...         user: "productUser",
...         pwd: "password123",
...         roles: [
...             {"db":"admin", "role":"dbAdminAnyDatabase" }, 
...             {"db":"admin", "role":"readWriteAnyDatabase"}, 
...             {"db":"admin", "role":"clusterAdmin"}
...         ]
...     }
... )

猫鼬的等效物是什么?

javascript node.js mongodb mongoose
1个回答
0
投票

[在MongoDB shell db.getCreateUserdb.DropUser中,在后台使用通过db.runCommand({createUser: "user1", ....})db.runCommand({dropUser: "user1"})运行的mongoDB命令。

this question,我们可以使用mongoDB命令执行所有类型的user management commands(创建,删除,更新,授予角色...)

以下代码添加一个用户,显示创建的用户,然后删除该用户:

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});

var db = mongoose.connection;

db.once('open', async function callback () {
    //show users
    var users = await db.db.command({usersInfo: 1});
    console.log("users", users);

    //create user
    var userCreate = await db.db.command({
        createUser: "productUser",
        pwd: "1234567",
        roles: [
            {"db":"admin", "role":"dbAdminAnyDatabase" }, 
            {"db":"admin", "role":"readWriteAnyDatabase"}, 
            {"db":"admin", "role":"clusterAdmin"}
        ]
    });
    console.log(userCreate.ok === 1 ? "user created" : "user creation failed");

    users = await db.db.command({usersInfo: 1});
    console.log("users",users);

    //drop user
    var userDrop = await db.db.command({
        dropUser: "productUser"
    });
    console.log(userDrop.ok === 1 ? "user removed" : "user drop failed");

    users = await db.db.command({usersInfo: 1});
    console.log("users",users);
});
© www.soinside.com 2019 - 2024. All rights reserved.