【MongoDB系列】3. MongoDB 安全策略:验证和授权
// 连接到MongoDB实例
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
if (err) throw err;
console.log("连接成功");
// 获取数据库
const db = client.db('test');
// 为admin数据库创建新用户并赋予角色
db.admin().createUser({
user: 'dba',
pwd: 'password', // 或者使用更安全的方式生成密码
roles: [
{ role: 'userAdminAnyDatabase', db: 'admin' },
{ role: 'readWriteAnyDatabase', db: 'admin' }
]
});
// 为具体数据库创建用户并赋予角色
db.createUser({
user: 'user',
pwd: 'password', // 或者使用更安全的方式生成密码
roles: [
{ role: 'readWrite', db: 'test' }
]
});
client.close();
});
在这个例子中,我们首先连接到MongoDB实例,然后为管理员用户创建一个具有更高权限的用户,并为特定数据库创建一个具有基本读写权限的用户。这样做可以增加安全性,并且遵循最小权限原则,只给用户完成其工作所需的权限。
评论已关闭