MongoDB开启访问权限控制

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 概述       在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})



相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
NoSQL 安全 MongoDB
MongoDB 未授权访问漏洞利用
MongoDB 未授权访问漏洞利用
1046 0
|
1月前
|
NoSQL JavaScript Java
Java Python访问MongoDB
Java Python访问MongoDB
21 4
|
5月前
|
运维 NoSQL Java
Serverless 应用引擎产品使用之在函数计算上部署Java服务并访问阿里云MongoDB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
10月前
|
数据安全/隐私保护 Docker 容器
mongodb4.2.2 docker 更正时区,与编码,以及远程访问配置文件
mongodb4.2.2 docker 更正时区,与编码,以及远程访问配置文件
292 0
|
NoSQL JavaScript Java
MongoDB 入门教程系列之一:开发环境搭建以及 Node.js 和 Java 的读写访问
MongoDB 入门教程系列之一:开发环境搭建以及 Node.js 和 Java 的读写访问
|
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)三个层次组成。
|
运维 NoSQL 自动驾驶
MongoDB与阿里云交出三年合作优秀“成绩单”,携手开启下一站创新
MongoDB开发者数据平台助力游戏、汽车、物联网、金融、物流等行业释放创新潜能
MongoDB与阿里云交出三年合作优秀“成绩单”,携手开启下一站创新