`

MongoDB的授权和权限z

阅读更多
1. 在开启MongoDB 服务时不添加任何参数时,可以对数据库任意操作,而且可以远程访问数据库。如果启动的时候指定—auth参数,可以对数据库进行用户验证。
           $ ./mongod --auth >> mongodb.log & 开启
           ./mongo
MongoDB shell version: 1.8.1
connecting to: test
>show dbs
admin   (empty)
local   (empty)
2. 添加用户
在刚安装完毕的时候MongoDB都默认有一个admin数据库,而admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息。
当admin.system.users中一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作,直到在admin.system.users中添加了一个用户。
下面创建数据库tage,并给tage创建用户:
> use tage  
switched to db tage
> db.addUser("tage","123")
{
         "user" : "tage",
         "readOnly" : false,
         "pwd" : "1f66d5c4223029536080d41febe0ec33"
}
在admin库中创建root用户:
> use admin
switched to db admin
> db.addUser("root","123456")
{
         "user" : "root",
         "readOnly" : false,
         "pwd" : "34e5772aa66b703a319641d42a47d696"
}
3. 验证用户:
> db.auth("root","123")
0                    密码错误,返回0,验证失败
> db.auth("root","123456") 
1                                            验证成功,返回1

下面试验用户权限设置:
$ ./mongo       登录时不加用户名与密码
MongoDB shell version: 1.8.1
connecting to: test
> use tage
switched to db tage
> db.system.users.find()
error: {
         "$err" : "unauthorized db:tage lock type:-1 client:127.0.0.1",
         "code" : 10057
}
4. 以上验证说明,登录时不指定用户名与密码,就会报错。下面指定用户与密码
$ ./mongo -uroot -p123456  指定用户与密码,但是不指定库名
MongoDB shell version: 1.8.1
connecting to: test
Wed Aug  3 21:30:42 uncaught exception: login failed
exception: login failed
mongodb登录时默认连接test库,如果登录时不指定库名,就会报错
5. 下面以tage库的用户名登录进行验证:
$ ./mongo tage -utage -p123
MongoDB shell version: 1.8.1
connecting to: tage
> db.system.users.find()    对所属自己的库进行操作,有权限
{ "_id" : ObjectId("4e394c696b50a56254359088"), "user" : "tage", "readOnly" : false, "pwd" : "1f66d5c4223029536080d41febe0ec33" }
> use admin
switched to db admin
> db.system.users.find() 对其他库操作,没有权限
error: {
         "$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",
         "code" : 10057
}
6. 下面以admin库下的root用户登录进行验证:
./mongo admin -uroot -p123456
MongoDB shell version: 1.8.1
connecting to: admin
> db.system.users.find()
{ "_id" : ObjectId("4e394caf6b50a56254359089"), "user" : "root", "readOnly" : false, "pwd" : "34e5772aa66b703a319641d42a47d696" }
> use tage
switched to db tage
> db.system.users.find()   对其他库进行操作,有权限
{ "_id" : ObjectId("4e394c696b50a56254359088"), "user" : "tage", "readOnly" : false, "pwd" : "1f66d5c4223029536080d41febe0ec33" }
7. mongodb的远程用户连接
语法结构:mongo –uusername –ppwd ServerIP:port/dbname
其中port默认为27017
$ ./mongo  -uroot -p123456 192.168.2.150/admin
MongoDB shell version: 1.8.1
connecting to: 192.168.2.150/admin
> db.system.users.find()
{ "_id" : ObjectId("4e394caf6b50a56254359089"), "user" : "root", "readOnly" : false, "pwd" : "34e5772aa66b703a319641d42a47d696" }
分享到:
评论

相关推荐

    mongodb-linux-s390x-ubuntu1804-4.2.8.tgz

    6. **安全性**:MongoDB的安全性包括认证、授权、加密和审计。默认情况下,MongoDB不开启认证,因此在生产环境中应启用身份验证并创建用户角色,以限制访问权限。 7. **复制集**:为了实现高可用性,MongoDB支持...

    mongo检测考试.7z

    7. 权限和安全:MongoDB提供用户认证、角色管理和权限控制,以保护数据库免受未经授权的访问。理解如何设置和管理用户权限是安全操作MongoDB的关键。 8. 性能优化:包括索引的创建和管理,内存使用优化(如工作集的...

    通讯录后台源码.7z

    4. **身份验证与授权**:考虑到用户隐私,源码中可能会有实现OAuth2.0, JWT(JSON Web Tokens)等机制来确保用户安全登录和权限控制。 5. **数据处理与解析**:可能包含XML或JSON格式的数据处理,用于数据交换和序列...

    content_1670479061121.7z

    7z是一种高效的数据压缩格式,提供比常见的zip格式更高的压缩比,同时支持多种压缩算法和加密方法。 描述中的 "content_1670479061121.7z" 同样没有给出具体的内容细节,可能是为了保护隐私或者防止信息泄漏。不过...

    监控别人的行踪代码.7z

    8. **用户权限**:在移动设备上,获取位置信息需要用户授权,代码可能涉及到处理权限请求和权限变更的逻辑。 9. **反跟踪技术**:为了防止被监控,一些用户可能会使用反跟踪技术,如IP匿名化、位置欺骗等,这可能对...

    数据库 IQ资料.7z

    9. **数据库安全性**:包括用户权限管理、角色授权、加密技术、审计日志等,确保数据的安全性和隐私性。 10. **云数据库**:随着云计算的发展,云数据库(如 AWS RDS、Azure SQL Database)成为趋势,提供了弹性...

    机智内容管理系统(witcms).7z

    4. **权限管理**:一个良好的CMS会提供用户角色和权限管理功能,确保不同级别的用户只能访问和操作他们被授权的内容。这部分源码涉及用户认证、授权逻辑和会话管理。 5. **插件和模块化**:为了扩展功能,WitCMS...

    盾灵新闻发布系统.7z

    5. **权限控制**:如OAuth、JWT(JSON Web Tokens)等,用于用户身份验证和授权。 6. **模板引擎**:如Smarty、Twig等,用于生成动态网页内容。 7. **版本控制系统**:如Git,用于代码的版本管理和团队协作。 8. **...

    数据库系统原理-课件.7z

    6. **数据库安全性**:通过权限控制、角色管理、审计追踪等方式,防止未经授权的访问和数据泄露。 7. **数据库性能优化**:涉及索引使用、查询优化、数据库分区、存储过程等技术,提高数据库的读写速度和响应时间。...

    实现超级课程表的一键提取课程功能,有app及课表静态网页内容.7z

    6. 权限管理和用户授权流程。 7. UI/UX设计原则,以提升用户体验。 通过分析和实践这个项目,你可以全面提升自己的安卓和网页开发技能,对于想要从事课程表开发或者类似项目的开发者来说,这是一次极好的学习机会。...

    数据库系统原理(教材配套_全部).7z

    10. **数据库安全性**:包括用户认证、权限管理、审计和加密,确保只有授权用户可以访问特定数据,并且所有操作可追溯。 11. **备份与恢复**:数据库的备份是为了防止数据丢失,恢复则是将数据库从错误状态恢复到...

    孤雨在线文件管理系统.7z

    6. **权限与安全**:用户权限管理是系统的核心部分,涉及到身份验证(如OAuth、JWT)和授权机制,确保数据的安全访问。 7. **API接口**:为了与其他系统集成,孤雨系统可能提供了RESTful API,让开发者可以轻松地...

    disk-front.7z

    5. 安全管理:提供权限设置,防止未授权访问。 对于开发这样的应用,开发者可能使用了现代前端框架,如React、Vue或Angular,后端可能采用Node.js、Python、Java或PHP等语言,数据库可能是MySQL、MongoDB或其他...

    EnableTQA教学质量综合评价系统(普教版).7z

    源码可能涉及到加密算法、身份验证和授权机制,防止数据泄露。 9. **性能优化**: 面对大量并发请求,源码中可能包含缓存策略、负载均衡和数据库优化技术,以保证系统的响应速度和稳定性。 10. **持续集成/持续...

    新秀文章管理系统.7z

    4. **用户认证和授权**:新秀文章管理系统很可能包含用户注册、登录功能,这需要理解会话管理、密码加密存储、角色权限控制等概念。 5. **API设计**:如果系统支持API接口,我们可以学习到RESTful API的设计原则,...

    极益公益平台NGOOS.7z

    开发者可以通过查看源码学习如何设计和实现安全、规范的API,以及如何进行身份验证和授权。 5. **权限与角色管理**:对于非营利组织,权限控制至关重要。源码可能会包含实现不同用户角色(如管理员、志愿者、捐赠者...

    才子飞信网络办公系统(支持飞信和超大附件上传).7z

    这包括用户角色设定、操作权限分配、访问控制列表(ACL)等,确保只有授权用户能访问特定资源。 5. **前端界面设计**:用户界面的设计直接影响到用户体验。HTML、CSS和JavaScript是构建前端的基本技术,可能还采用...

    WWW-WAP双栖WEB文件管理器.7z

    9. **安全性与权限管理**:作为一款Web文件管理器,它必须具备用户认证、授权机制和数据加密功能,以保护用户文件的安全。 10. **API接口**:为了与其他系统集成,可能会提供API接口,使得其他应用程序可以与文件...

    POCENT文章开放系统.7z

    5. **权限与安全**:系统的安全性至关重要,可能包含了用户身份验证(如OAuth、JWT)和授权机制,以保护用户数据不被未授权访问。同时,可能还应用了HTTPS协议以确保数据传输的安全性。 6. **搜索功能**:为了方便...

    id-spring-boot-starter.7z

    2. **身份验证和授权**:这可能涉及到Spring Security的集成,提供了用户登录、权限控制、会话管理等功能,以保护API和Web界面的安全。 3. **用户管理和认证**:可能会包含用户注册、登录、密码重置等用户管理功能...

Global site tag (gtag.js) - Google Analytics