MongoDB开启访问权限控制

简介: 概述       在MongoDB实例上开启访问权限控制,意味着强制要求用户输入账号密码进行授权认证。在开启了访问权限控制的MongoDB实例上,用户能进行的操作取决于登陆账号的角色(roles)。       MongoDB支持多种授权认证机制。下面将介绍如何使用MongoDB默认的机制开启访问权限控制。

概述


      在MongoDB实例上开启访问权限控制,意味着强制要求用户输入账号密码进行授权认证。在开启了访问权限控制的MongoDB实例上,用户能进行的操作取决于登陆账号的角色(roles)。


      MongoDB支持多种授权认证机制。下面将介绍如何使用MongoDB默认的机制开启访问权限控制。


用户管理员


      在开启访问权限控制时,需要确保admin库中有一个被分配了userAdmin或者userAdminAnyDatabase角色的用户账号。这个账号可以管理用户和角色,比如:创建用户,获取角色权限,创建或修改自定义角色等。


      在访问权限控制开启之前或之后,都可以执行创建用户的操作。如果你在开启访问权限控制之前没有创建任何用户,MongoDB提供一个特有机制,让你能够在admin库中创建管理员账号。一旦管理员账号创建完毕,其他账号则必须使用该管理员账号进行创建。


步骤


      在下面的流程中,首先在尚未开启访问权限控制的MongoDB实例中添加一个用户管理员账号,然后再开启访问权限控制。


1.启动MongoDB服务(禁用访问权限控制)


mongo --port 27017


3.添加管理员账号


use admin
db.createUser({user: "myUserAdmin", pwd: "abc123", roles: [{role: "userAdminAnyDatabase", db: "admin"}]})


4.重启MongoDB实例,并启用访问权限控制


mongod --auth --port 27017--dbpath /data/db1


5.连接至MongoDB实例


mongo --port 27017


切换至admin库,并登陆


use admin
db.auth("myUserAdmin","abc123")


6.添加普通用户账号


use test
db.createUser({user: "myTester", pwd: "xyz123", roles: [{role: "readWrite", db: "test"}, {role: "read", db: "reporting"}]})


7.使用普通用户账号登陆


mongo --port 27017
use test
db.auth("myTester","xyz123")


向数据集中添加纪录


db.foo.insert({x:1, y:1})



相关文章
|
NoSQL 安全 MongoDB
MongoDB 未授权访问漏洞利用
MongoDB 未授权访问漏洞利用
3449 0
|
NoSQL JavaScript 前端开发
Java访问MongoDB
Java访问MongoDB
231 21
|
NoSQL JavaScript Java
Java Python访问MongoDB
Java Python访问MongoDB
140 4
|
存储 NoSQL 网络协议
【赵渝强老师】MongoDB的安装与访问
本文介绍了在Linux系统上安装和部署MongoDB的详细步骤,包括安装依赖包、解压安装包、配置环境变量、创建数据目录及启动服务等。文中还提供了相关命令示例和注意事项,帮助用户顺利完成MongoDB的安装与配置。
386 0
|
运维 NoSQL Java
Serverless 应用引擎产品使用之在函数计算上部署Java服务并访问阿里云MongoDB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
409 0
|
数据安全/隐私保护 Docker 容器
mongodb4.2.2 docker 更正时区,与编码,以及远程访问配置文件
mongodb4.2.2 docker 更正时区,与编码,以及远程访问配置文件
853 0
|
NoSQL 网络协议 Linux
Linux安装MongoDB数据库并内网穿透在外远程访问
MongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
|
JSON 缓存 负载均衡
【服务网格架构】Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
【服务网格架构】Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
|
JSON 缓存 负载均衡
Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
|
存储 JSON 缓存
SpringBoot访问MongoDB数据库
MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。

推荐镜像

更多