全部博文(247)
分类: NOSQL
2014-06-09 18:33:26
以前,在使用关系型数据库时,没有用户名和密码我们是不能访问数据的。但是在MongDB中,默认不需要使用用户名和密码就可以访问数据库,并且可以进行各种操作。这样是虽然利于初学者,但是很不安全的。所以,今天说一下MongDB的连接安全问题。
首先,之所以能够不使用用户名和密码就能连接,是因为我们在启动MongoDB服务的时候,没有设置权限认证。
1、不用用户名和密码就能访问的启动方式:
mongod --dbpath c:\mongo_data --logpath c:\mongo\logs\logs.txt
只需要给出--dbpath和logpath即可
2、需要用户名和密码的启动方式:
mongod--dbpath c:\mongo_data --logpath c:\mongo\logs\logs.txt -auth
需要加上 -auth(cateauthentication 认证的意思)
想要使用用户名和密码登陆,就必须有用户名和密码,而我们要在哪里设置用户名和密码呢?
首先以非认证方式(不需要用户名和密码)登陆系统,然后我们可以看到默认系统给出了几个库,其中有localhost和 admin,当然我们也可以新建库。
每个库都有自己的用户表,admin库的用户拥有其他的所有权限。所以,初学阶段我们使用在admin库中添加用户,真正使 用的时候,使用各个库自己的用户。
添加用户图片
两种不同的连接数据库方式
1、不使用用户名和密码:
Mongo m = new Mongo("localhost",27017); //默认访问本地的27017端口
2、使用用户名和密码:
Mongo m = new Mongo("localhost",27017);
booleanauth = db.authenticate(userName, password);
通过这样的方式,我们大概了解了如何让自己的MongoDB连接变得安全。