2011-11-21 59 views
4

我打算安装mongodb和连接到同一台机器的windows服务。 该机器将处于隔离网络。可以使用mongoDB无密码吗?

当我们这样做。 可以连接本地mongodb无密码吗?

我的计划性会是这样......

private MongoDatabase _db; 
public MongoDatabase DB 
{ 
    get 
    { 
     if (_db == null) 
     { 
      var mongoServer = MongoServer.Create(); 
      _db = mongoServer.GetDatabase("myStatistics"); 
     } 
     return _db; 
    } 
} 

private MongoCollection _collection; 
public MongoCollection Collection 
{ 
    get { return _collection ?? (_collection = DB.GetCollection("myStats")); } 
} 

回答

2

有两种选择:

  1. 密码的可信环境
  2. 密码保护

这是可以在可信网络中使用MongoDB和auth禁用。 MongoDb开发人员recommend在可信环境中运行数据库,而不是专注于身份验证选项。

0

同一台机器,孤立的网络。我会说是的。我对我工作的系统也一样。 唯一的问题是如果有其他计算机连接到网络,也连接到互联网,并可能不安全(没有反病毒,防火墙等)。

0

对我来说,问题是,您从无密码运行中获得什么?

即使您在可信环境中运行,使用密码真的花费了多少钱?虽然不应该违反可信环境,但没有什么是完全安全的,并且通过添加密码,您可以添加额外的防御层。所以如果有人违反你的服务器,他们不应该自动访问数据库。

出于同样的原因,当用户密码存储在数据库中时,您会加密/散列用户密码。如果有人违反了你的服务器,他们不会自动获得一切。

这种方法被称为纵深防御。

+0

我希望它无密码,因为它只是一个统计服务......我理解你的关注。如果有人能够到达我的机器,他/她应该很容易看到这些数据。 – Serdar

0

如果你的系统是孤立的,那么你可以做到这一点。但考虑未来你的项目的图像。后来你可能需要限制访问的用户,你可能需要用户角色,如果你这样做很可能,比开始思考这个方向并开始使用认证更好。这也会增加一个层到你的数据库的安全性,而且花费很多。

+0

你的观点是对的。但在我的情况下,我会重写应用程序。我想要做到无密码... – Serdar

+0

在这种情况下,你可以做任何你想做的事情。但是如果你正在做一些poc,或者如果你只是学习这个工具,而不是使用身份验证的生产模式,那么你必须使用它。 – gsagrawal

相关问题