MongoDB在非授权模式下启动显然是不安全的,任何人都能通过客户端连接数据库服务器,并且操作里面的所有数据。MongoDB以安全的授权方式启动:
mongod --auth
这样就只有数据库添加的授权用户才能连接数据库,并进行数据操作。
官方给出的用户管理的说明:http://www.mongodb.org/display/DOCS/Security+and+Authentication
添加一个admin超级管理员用户:
> use admin
> db.addUser("oneAdminUser", "123456")
理解成MongoDB把所有的admin管理员添加到了一个admin数据库中进行管理。
用admin用户的身份登陆数据库,给一般的数据添加普通用户:
> use projectx
> db.addUser("joe", "passwordForJoe")
> db.addUser("guest", "passwordForGuest", true)
其中第二个guest用户的readonly属性为true。
查看某个数据库中拥有的所有用户:
> use projectx
> show users
> // or
>db.system.users.find()
给某个用户更改密码也用db.addUser,这个函数会判断用户村不存在,不存在就创建,存在就(密码)替换掉以前的。
删除用户:
> db.removeUser("user1")
> // or
> db.system.users.remove({user:"user2"})
好了,用户添加完了,现在来看这么用mongo 以某个用户的身份登陆MongoDB数据库,首先确保数据库以授权的安全形式启动了,以admin用户的身份登陆
> mongo 192.168.1.154/admin -u oneAdminUser -p 123456
oneAdminUser密码是123456,以admin的身份登陆位于192.168.1.154上的MongoDB数据库。因为是admin用户,登陆进去之后就能进行任何操作。
普通用户登陆普通的数据库的方式类似的:
> mongo 192.168.1.154/projectx -u joe -p passwordForJoe
joe这个用户登陆位于192.168.1.154机器上的projectx数据库。
如果在Java程序中登陆,代码如下:
Mongo mongo = new Mongo("192.168.1.154", 27017);
DB db = mongo.getDB("admin");
db.authenticate("oneAdminUser", "123456".toCharArray());
System.out.println("数据库列表:"+mongo.getDatabaseNames()); //所有有数据的数据库名称
db = mongo.getDB("projectx");
//然后可以对任何数据库进行任何操作
System.out.println(db.command("isMaster"));
DBCollection collection = db.getCollection("onecollection");
collection.find();
普通用户登陆普通数据库:
Mongo mongo = new Mongo("192.168.1.154", 27017);
db = mongo.getDB("projectx");
db.authenticate("guest", "123456".toCharArray());
DBCollection collection = db.getCollection("onecollection");
collection.find();
guest这个用户就只能对projectx这个数据库进行操作了。
分享到:
相关推荐
在学习MongoDB时,你需要掌握基本的CRUD操作、数据模型设计、索引使用、复制集的建立和维护、分片集群的搭建以及性能调优策略等。理解NoSQL数据库的核心理念,如灵活性、可伸缩性和高性能,将有助于你更好地应用...
同时,MongoDB提供了认证和授权机制,允许管理员控制对数据库的访问权限,确保只有授权用户能够进行操作。 在开发工具和API方面,MongoDB 3.0.2兼容多种编程语言,如Python、Java、C#、Node.js等,使得开发者可以...
8. **安全性**:提供加密功能,保护数据安全,同时支持身份验证和访问控制,确保只有授权用户可以访问数据库。 **二、安装与配置** 1. **下载与安装**:从官方网站下载适合操作系统(例如,这里提供的x64位版本)...
这需要实现验证机制,比如使用HTTPS协议加密通信,以及采用合适的认证和授权策略。 7. **用户体验优化**:为了提升游戏体验,还可以添加一些额外功能,如悔棋、禁手规则、智能AI对战等。AI对战通常会用到搜索算法,...
Spring Security则提供了用户认证和授权,保障了系统的安全性。在数据层,MongoDB的聚合框架用于实现复杂的数据分析,如销售统计和用户行为分析。 此外,系统的前端部分可能采用了HTML5、CSS3和JavaScript,以及...
在微博系统中,用户认证和授权是重要的安全环节。Node.js和Express4提供了基础的Session和Cookie管理,可以实现用户登录状态的保持。同时,为了保护用户数据的安全,我们需要对敏感信息如密码进行加密存储,通常采用...
本压缩包文件“mongodb-courses-master”包含了MongoDB大学的两门课程——M001和M103的实验室和测验代码,这些实践材料对于深入理解和应用MongoDB至关重要。 **M001:MongoDB基础** M001课程主要介绍MongoDB的基础...
3. **安全性**:实现用户认证和授权,如OAuth 2.0,防止未授权访问。 4. **消息队列**:如RabbitMQ,用于异步处理高并发的消息传递,提高系统性能。 5. **API设计**:遵循RESTful原则,定义清晰的接口供客户端调用。...
综上所述,“Java Web应用教程——网上购物系统的实现”不仅涵盖了Java Web应用的基础知识,还深入探讨了如何设计和构建一个功能完备、性能卓越、安全可靠的网上购物系统。这对于学习Java Web开发或是准备搭建电子...
《铁路后台管理系统——基于Node.js与MongoDB的后端实现及Mui框架的iOS前端构建》 本项目是一个铁路后台管理系统,其核心在于后端服务的搭建以及前端界面的开发,旨在提供高效、稳定的管理功能。系统采用Node.js...
8. 分布式安全:了解如何确保分布式系统的安全性,包括认证、授权、加密和防止攻击。 9. 分布式计算优化:学习如何通过并行化、分片、压缩等技术优化分布式计算,提升系统性能。 10. 分布式算法实例:分析实际应用...
总的来说,张亚的这篇MongoDB数据库分享,不仅对于零基础的学习者十分友好,而且通过实例和操作步骤的讲解,让有经验的开发者也能从中学习到更多高级技巧和操作知识。通过对这些知识点的掌握,用户可以更加熟练地...
例如,Android 6.0及以上版本需要动态申请权限,推送通知通常借助Firebase Cloud Messaging (FCM) 或其他第三方服务,而数据传输的安全性则需要通过HTTPS协议和SSL/TLS加密来保障。 总的来说,这份“安卓Android...
10. **安全机制**:身份验证、授权、加密、防止SQL注入和XSS攻击等方法的实施。 通过深入研究这个项目,学习者不仅可以了解到一个大型系统从无到有的建设过程,还能学习到如何处理系统扩展性、维护性和安全性的问题...
4. **数据库管理**: MySQL、PostgreSQL或MongoDB等数据库系统用于存储用户信息、商品数据和订单记录。学生需要理解SQL查询和数据库设计原则。 5. **RESTful API设计**: 为了实现前后端分离,学生需要设计符合REST...
综上所述,"毕业设计——校友网管理系统.zip"是一个综合性的IT项目,涵盖了前端与后端开发、数据库设计、安全防护、性能优化等多个方面,是学习和实践Web应用开发的宝贵资源。通过这样的项目,开发者可以全面提升...
4. 授权和权限:实施RBAC(Role-Based Access Control)角色权限管理。 六、测试与部署 1. 单元测试:确保每个功能模块的正确性。 2. 集成测试:检查各模块间的协同工作。 3. 性能测试:模拟高并发场景,优化系统...
【毕业设计——合同管理系统】 合同管理系统是一款用于企业管理合同的软件应用,它涵盖了合同的创建、审批、执行、到期提醒、存储以及查询等多个环节,旨在提高企业合同管理的效率和规范性。这个毕业设计项目不仅...
3. **数据库管理**:MySQL、PostgreSQL或MongoDB等数据库管理系统可能是存储用户信息、博客内容的载体,涉及到SQL查询优化和数据结构设计。 4. **用户认证与授权**:如OAuth2、JWT(JSON Web Tokens)等机制可能用于...
源码可能会展示如何使用ASP.NET的身份验证和授权机制,如Forms Authentication、Role-Based Authorization,以及防止SQL注入和跨站脚本攻击的方法。 5. **支付集成**:网店联盟商城通常需要集成第三方支付平台,如...