首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb安全服务器安装

Mongodb安全服务器安装
EN

Stack Overflow用户
提问于 2017-07-12 10:42:49
回答 2查看 1.5K关注 0票数 9

我试图成功的设置是让一个创建数据库的节点进程和其他服务器以一种安全的方式访问这些数据库。

所以我的想法是用一个用户和pass从节点创建数据库。然后打开服务器mongodb端口以打开access并锁定mongo管理用户。如果这一理论是正确的:

  1. 如何使用户与猫鼬,使数据库将只能访问该用户?
  2. /etc/mongodb.conf上,我应该只添加bind_ip = 0.0.0.0吗?

PS:我正在使用Ubuntu 16:04和最新的Mongodb。

编辑: 13/08/17

到目前为止,我取得的成功是addUser = db.createUser({user: "admin",pwd: "admin",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});用于管理数据库,在数据库位于--auth下时与之连接,并尝试通过该连接创建其他数据库,如下所示。

代码语言:javascript
复制
var adminConnection = mongoose.createConnection('mongodb://admin:admin@localhost:27017/admin', {
    useMongoClient: true
});
console.log(typeof adminConnection.db.executeDbAdminCommand);//function
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-14 09:04:00

一般来说,我几乎做了我想做的事。这是解决办法。

代码语言:javascript
复制
var a_conn = mongoose.createConnection('mongodb://admin:admin@localhost:27017/admin', {
    useMongoClient: true
});
a_conn.once('open', function() {
    a_conn.useDb('w_one');
    a_conn.otherDbs[0].db.addUser('user', 'pass', {
        db: 'w_one',
        roles: ["readWrite"]
    });
    var Schema = mongoose.Schema({});
    var Collection = a_conn.otherDbs[0].model('cool', Schema, 'cool');
    var doc = new Collection({});
    doc.save(function() {
        doc.remove(function() {
            var testConn = mongoose.createConnection('mongodb://user:pass@localhost:27017/w_one', {
                useMongoClient: true
            });
            testConn.once('open', function() {
                //Collection.collection.drop('cool');
                console.log('Database is ready.');
            });
        });
    });
});

通常,我创建包含文档的集合来创建数据库,当我删除该集合时,数据库会自动被删除,如果有选项不删除它,这将是对解决方案的很好的改进。

票数 1
EN

Stack Overflow用户

发布于 2017-07-15 05:58:17

代码语言:javascript
复制
Your  /etc/mongod.conf  YAML file will be look like this

storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log


# network interfaces  put your ip in bindIp in form of Array like below
net:
  port: 27017
  bindIp: [127.0.0.1,84.20.57.18]

#before enabling security authorization you must add mongodb database user
security:
  authorization: "enabled"

#Replication oplogsize mb set based on Main Memory of your Ubuntu Server (It will be good to set 1024 for speed of database Operation). In replSetName give your Replica set name or your Project Name Ex: smartcity
replication:
  oplogSizeMB: 1024
  replSetName: "smartcity"

在节点js中,如何使用mongoose并连接到mongodb数据库,如下所示

代码语言:javascript
复制
var mongoose = require('mongoose');
var options = {
    useMongoClient:true
};
var dbUrl = 'mongodb://<dbusername>:<dbpassword>@<db-ipaddress>:27017/<dbname>?replicaSet=<replicasetname>';//Ex:"mongodb://smartcityUser:smartcity1234@84.20.57.18:27017/smartcity?replicaSet=smartcity"

mongoose.connect(dbUrl,options);
mongoose.Promise = global.Promise;

愿我的工作能解决你的问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45055445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档