MongoDB的授权和权限
1. 在开启MongoDB 服务时不添加任何参数时,可以对数据库任意操作,而且可以远程访问数据库。如果启动的时候指定—auth参数,可以对数据库进行用户验证。 www.2cto.com
$ ./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" }
相关推荐
3. **权限申请与审批流程**:MongoDB的权限申请和审批流程相对简单,一般包括用户提交申请、项目负责人审批、DBA进行权限授予等步骤。这个过程确保了权限的合理分配和安全控制。 综上所述,无论是MySQL还是MongoDB...
MongoDB权限管理是数据库安全的重要组成部分,用于保护数据免受未经授权的访问和操作。在MongoDB中,权限管理主要涉及到用户、角色以及数据库级别的访问控制。这篇博客文章将深入探讨MongoDB权限系统的核心概念和...
MongoDB是一种流行的开源、分布式文档型...正确配置管理员用户和角色权限,可以确保只有授权的用户能访问和操作数据,从而保护数据的安全。同时,遵循最佳安全实践,可以进一步增强MongoDB在Windows环境中的安全性。
该角色拥有创建及修改数据库使用者及相应权限的权限,允许为数据库任何使用者添加任何操作授权。该角色还拥有 changeCustomData, changePassword, createRole, createUser, dropRole, dropUser, grantRole, ...
然而,如果不设置适当的权限和安全措施,MongoDB数据库可能会暴露,成为攻击的目标。 描述中提到"取第一条内容,并统计数据数量",这意味着该Python脚本会连接到目标MongoDB服务器,读取每个数据库的第一个文档...
MongoDB是一种流行的开源、分布式文档型数据库,常用于构建现代Web应用和权限管理系统。这个"MongoDB-demo, 权限管理系统移植到MongoDB数据库.zip"压缩包文件显然包含了一个使用MongoDB作为数据存储的权限管理系统的...
在文件系统权限安全配置方面,必须确保数据文件和密钥文件的权限尽可能小,以防止未授权访问。例如,应确保数据文件权限为660,仅允许MongoDB用户和所属组访问,且拥有读写权限。MongoDB文件系统权限配置还包括密钥...
7. **安全特性**:MongoDB支持身份验证、授权和加密,确保数据安全。 8. **命令行工具**:MongoDB提供了一些实用的命令行工具,如`mongo` shell,用于交互式操作数据库,以及`mongodump`和`mongorestore`用于数据...
出于安全考虑,通常我们会对MongoDB数据库进行权限配置,以便只有授权的用户才能访问数据库。这一过程可以通过启用MongoDB的认证功能来实现。 在MongoDB中,系统表`system.users`是存放数据库用户信息的地方。一旦...
MongoDB 是一个流行的开源文档型数据库系统,设计用于处理大量数据并提供高可用性和灵活性。在 MongoDB 4.x 版本中,引入了许多增强的...遵循最佳实践,结合适当的权限分配,可以有效地管理和保护你的 MongoDB 集群。
它可能会包含运行`mongod`命令的代码,可能需要指定配置文件和日志文件路径,并处理必要的权限和环境变量。 请注意,这些批处理脚本的具体内容需要查看才能了解详细的步骤和参数。在使用这些脚本之前,确保你理解...
- 网络安全:通过修改配置文件中的`bindIp`参数,限制MongoDB只监听特定的IP地址或接口,防止未授权的远程访问。 5. **备份与恢复** - 备份:MongoDB提供了`mongodump`工具,可以将数据库备份为JSON或BSON格式的...
### MongoDB未授权访问漏洞及其加固方法 #### 一、MongoDB简介与安装 ...综上所述,对于MongoDB未授权访问漏洞的加固不仅包括了技术上的实施,还涉及到日常管理和监控,只有通过综合手段才能有效提高MongoDB的安全性。
6. **安全管理**:用户可以使用此工具管理MongoDB的权限和认证,设置用户角色,控制对数据库的访问,确保数据的安全。 7. **导入导出数据**:"NoSQL Manager for MongoDB"支持从CSV、JSON、XML等格式导入数据到...
通过以上步骤,你可以有效地管理和控制MongoDB 3.0及更高版本中的用户权限。安全访问控制是数据库管理的关键部分,确保数据安全的同时,还能防止未经授权的访问和操作。正确配置这些设置有助于保护你的MongoDB实例免...
- **身份验证和授权**:了解如何设置用户权限,保护数据库免受未经授权的访问。 - **加密**:MongoDB支持数据传输和存储加密,保障数据安全。 - **备份与恢复**:理解不同备份策略(如Oplog、快照等),并学习...
- MongoDB支持身份验证、授权和加密,确保数据安全。 - 创建用户和角色,通过`db.createUser()`和`db.grantRolesToUser()`进行权限管理。 - 启用网络加密和访问控制,可在mongod.conf中配置。 总之,MongoDB是一...
9. **安全特性**: MongoDB支持身份验证、授权和加密,以保护数据安全。可以设置访问控制,限制不同用户对数据库的访问权限。 10. **监控与管理工具**: MongoDB提供了一个名为MongoDB Compass的图形用户界面,方便...