安全认证简介|学习笔记

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 快速学习安全认证简介

开发者学堂课程【MongoDB精讲课程(下)安全认证简介】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/727/detail/12990


安全认证简介

 

一、MongoDB 的用户和角色权限简介

1.默认情况下,MongoDB 实例启动运行时是没有启用用户访问权限控制的,也就是说,在实例本机服务器上都可以随意连接到实例进行各种操作,MongoDB 不会对连接客户端进行用户验证,这是非常危险的。

mongodb 官网上说,为了能保障 mongcdb 的安全可以做以下几个步骤:

1)使用新的端口,默认的27017端口如果一旦知道了 ip 就能连接上,不太安全。

2)设置 moneodb 的网绝环境,最好将 mongodb 部署到公司服务器内网,这样外网是访问不到的。公司内部访问使用vpn等。

3)开启安全认证。认证要同时设置服务器之间的内部认证方式,同时要设置客户端连接到集群的账号密码认证方式。

为了强制开启用户访问控制(用户验证),则需要在 MongoDB 实例启动时使用选项--auth或在指定启动配置文件中添加选项 auth=true。

在开始之前需要了解一下概念

1)启用访问控制:

MoneoDB使用的是基干角色的访问控制 (Role-Based AccessControRBAC 来管理用户对实例的访问。通过对用户授予一个或多个角色来控制用户访问数据库资源的权限和数据库操作的权限,在对用户分配角色之前,用户无法访问实例。

在实例启动时添加选项--auth 或指定启动配置文件中添加选项 auth=true,

2)角色:

在 MongoDB 中通过角色对用户授予相应数据库资源的操作权限,每个角色当中的权限可以显式指定,也可以通过继承其他角色的权限,或者两都都存在的权限。分为

3) 权限:

权限由指定的数据库资源(rescurce)以及允许在指定资源上进行的操作(action)组成

1.资源(resource)包括:数据库、集合、部分集合和华群;

2.操作[action)包括:对资源进行的增、删、改、查(CRUD)操作。

在角色定义时可以包含一个或多个已存在的角色,新创建的角色会继承包含的角色所有的权限。在同一个数据库中,新创建角色可以继承其他角色的权限,在admin数据库中创建的角色可以继承在其它任意数据库中角色的权限。角色它分为这个内置权限和自定义角色,自定义的角色基本上在开发当中的很少去用,一般它内置的这些角色就已经够用够使了,看一下他内置的角色

//查询所有角色权限(仅用户自定义角色)

>db.runCommand({rolesInfo:1})

//查询所有角色权限(包含内置角色)

>db.runCommand({roesInfo:1,showBuiltinRoles:true})

// 查询当前数据库中的某角色的权限

> db.runconmand({ ro1esInfo:"<rolename>"})

//查询其它数据库中指定的角色权限

>db.runcommand({ ro1estnfo:{ role: "<rolename>",db:"<database>"} )

//查询多个角色权

>db.runcommand(

rolesinfo:[

"<rolename>"

{ role: "<ro1ename>",db:"<database>"}.

}

常用的内置角色:

数据库用户角色:readreadWrite;

所有数据库用户角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase

数据库管理角色:dbAdmin、dbOwner,userAdmin

集料管理角色:clusterAdmin、clusterManager、clusterMantor、hastManager

备份恢复角色:backup、restore;

超级用户角色:root

内部角色:system

2.角色说明

read:是一个比较小的权限,只能读但不能修改数据库,包括写等等都不可以。

Resdwrite:可以读写指定的数据库。包括创建、重命名、删除。

userAdmin:管理员用户,可以去修改用户包括对指定数据库的创建。

root:超级管理权限,权限非常大。

image.png

角色可以区分为两大类,一种是普通用户,只对数据库或数据库的读写操作有用处;一种是管理员角色,可以去管理我的用户、创建用户、修改用户。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
6月前
|
安全 Java 网络安全
后端进阶之路——综述Spring Security认证,授权(一)
后端进阶之路——综述Spring Security认证,授权(一)
|
6月前
|
存储 安全 JavaScript
【分布式技术专题】「授权认证体系」深度解析OAuth2.0协议的原理和流程框架实现指南(授权流程和模式)
在传统的客户端-服务器身份验证模式中,客户端请求服务器上访问受限的资源(受保护的资源)时,需要使用资源所有者的凭据在服务器上进行身份验证。资源所有者为了给第三方应用提供受限资源的访问权限,需要与第三方共享它的凭据。这就导致一些问题和局限:
485 2
【分布式技术专题】「授权认证体系」深度解析OAuth2.0协议的原理和流程框架实现指南(授权流程和模式)
|
6月前
|
安全 Java 数据库
后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)
后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)
|
11月前
|
C# 图形学 开发者
宣布 freeCodeCamp 获得新的基础 C# 认证
欢迎大家来学习 .NET Conf 2023 发布的全新 C# 认证,我们与受人尊敬的 freeCodeCamp 合作,我们的认证不仅仅是一个徽章,而是优质教育的标志。它是全面的、全球可访问的、免费的。
480 3
|
安全 Java 程序员
阿里开源SpringSecurity:用户+案例+认证+框架
SpringSecurity 相信Spring大家一定不陌生,那么SpringSecurity你又了解多少呢?市面上有关Spring的介绍有很多,那么对于SpringSecurity只有一些简单的有关概念的介绍,如果想深入了解并使用SpringSecurity还是需要下很大的功夫的! 可想而知,SpringSecurity有着强大的功能,但是它同时也有很高的学习成本;毕竟囊括了身份认证的各种场景以及Web安全的大量知识,在官方参考的手册中就数十万字的介绍,且还不包括当中诸多实现细节。问题来了,很多开发人员在面对这样的“庞然大物”的时候也是无从下手的,
67 0
|
Web App开发 JavaScript 前端开发
C1认证学习笔记(第四章)
C1认证学习笔记(第四章)
70 0
|
存储 缓存 JavaScript
C1认证学习笔记(第三章)
C1认证学习笔记(第三章)
810 0
|
前端开发 搜索推荐 JavaScript
C1认证学习笔记(第二章)
C1认证学习笔记(第二章)
181 0
|
安全 Java 关系型数据库
案例之认证服务搭建|学习笔记
快速学习案例之认证服务搭建
案例之认证服务搭建|学习笔记