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
相关文章
|
3月前
|
运维 NoSQL Java
Serverless 应用引擎产品使用之在函数计算上部署Java服务并访问阿里云MongoDB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
NoSQL MongoDB 数据库
MongoDB v4.4.6安装、创建服务及Web客户端访问MongoDB详解
MongoDB v4.4.6安装、创建服务及Web客户端访问MongoDB详解
327 0
MongoDB v4.4.6安装、创建服务及Web客户端访问MongoDB详解
|
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与阿里云交出三年合作优秀“成绩单”,携手开启下一站创新
|
NoSQL MongoDB 数据库
MongoDB服务开启及简单语法(新手教程)
刚开始学习mongodb教你如何打开服务和一些简单语法
535 0
|
NoSQL 前端开发 Java
SpringBoot2.x使用MongoDB的Rest端点访问数据
在之前项目中我们想要读取`MongoDB`内的内容需要使用`MongoDBTemplate`来完成数据的`CRUD`,那如果我们想要通过`RestController`的形式获取`MongoDB`内的数据就更麻烦了,还需要自行去创建对应的控制器,然后使用`MongoDBTemplate`从`MongoDB`内读取出数据后返回给前端。
|
弹性计算 NoSQL 安全
公网访问阿里云MongoDB
既然无法直接使用公网(俗称的外网都是一个意思),那就使用端口转发的形式,把可以访问的一台服务器的公网ip和端口转到MongoDB的服务器即可,接下来我们使用rinetd的方式实现端口转发。
667 0
公网访问阿里云MongoDB
|
NoSQL JavaScript 前端开发
MongoDB最简单的入门教程之二 使用nodejs访问MongoDB
MongoDB最简单的入门教程之二 使用nodejs访问MongoDB
118 0
MongoDB最简单的入门教程之二 使用nodejs访问MongoDB

热门文章

最新文章