添加用户和权限|学习笔记

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 快速学习添加用户和权限

开发者学堂课程【MongoDB精讲课程(下)添加用户和权限学习笔记与课程紧密联系,让用户快速学习知识

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


添加用户和权限

 

内容介绍:

一、单实例环境

二、创建超级管理员用户

三、创建普通用户bobo

 

本节介绍安全认证的具体操作,具体操作分为两种情况:单实例环境和集群环境:

单实例只需要新增一个用户,给此用户赋予一个角色即可。

集群环境 集群环境实际上包括副本集和之前搭建的分片集群,集群环境除了开启用户认证,集群之间相互通讯的还需要安全认证。

 

一、单实例环境

比较简单,只需要将之前 single 的单机开启,然后开启一些用户,赋予用户一些角色,然后通过用户对数据库进行指定的操作。

目标:对单实例的 MongoDB 服务开启安全认证,这里的单实例指的是未开启副本集或分片的MongoDB实例。

1.关闭服务

在搭建单实例环境前需要关闭之前的服务。

输入clear

关闭之前搭建的分片集群的服务,再来输入

ps-ef |grep mongo

查看当前开启了哪些服务

image.png

上述mongo服务都可以进行关闭,客户端也可以先进行退出,在两个客户端输入exit,退出后进行关闭。

当前分片开启的一些服务都要进行关闭,输入

kill -2 11305 20789 20820 20879 20973 21005 21035 21246 21288 21328 24718

杀掉后再来查看,输入ps-ef |grep mongo

整个环境变得干净,先来启动单机,输入

/usr/local/mongodb/bin/mongod-f/mongodb/single/mongod.conf

单机启动后再输入ps-ef |grep mongo查看,发现结果种存在刚才启动的单机。启动完单机后连接客户端,输入

/usr/local/mongodb/bin/mongo--host 180.76.159.126--port 27017

此时就是最普通简单的一个mongo服务的单实例环境。

 

二、创建超级管理员用户

在创建普通用户前先创建管理员,先要切换到 admin 库,输入

show dbs

admin 是作为 mongo 服务的一些权限管理,切换到 admin 库后创建超管,输入

>db. createUser({ user:"myroot", pwd:"123456", roles:[root]})

user是用户名,pwd 是指定密码,roles 代表需要赋予 myroot 什么权限,roles 权限的语法:

roles:[{role:root,db:admin}]

实际上是一个json对象,roles可以赋予多个,此处只赋予一个权限,role用户角色是root,因为超管针对的是admin库,所以db只能写admin。语法也可以进行简写,例如当前库就在admin下,admin赋予的角色只需要在后面添加上root字符串即可,代表当前admin库给myroot用户赋予超管的权限。

输入

>db. createUser({ user:"myroot", pwd:"123456",roles:[root]})

显示

Successfully added user: {user:myroot,roles:[root]}

说明超管用户已经创建成功。再来创建admin普通管理员的权限

> db.createUser({user : "myadmin" , pwd : "123456" , roles:

[{role : "userAdminAnyDatabase" , db : "admin"}]})

userAdminAnyDatabase可以在指定数据库创建和修改用户(除了数据库config和local之外),相当于一个小的root,比root权限小,也可以创建和修改用户。

输入

> db.createUser({user : "myadmin" , pwd : "123456" , roles:

[{role : "userAdminAnyDatabase" , db : "admin"}]})

创建成功后可以通过system进行查看,先输入

show collection 可以看到结果有几个集合,其中包括system.users.,它里面存放着刚才创建成的用户的信息,再输入:

>db.system.users.find()

结果显示

image.png

可以看到存放了两个用户myroot和myadmin,对用户可以进行一些增删改查的操作,可以删除myadmin,只使用超管,输入

>db.dropUser(myadmin)

之后再来查看,输入

>db.system.users.find()

结果可以看到刚才创建的admin被删除

image.png

只剩下超管用户即可,除了对用户进行添加修改删除,还可以修改密码,输入

>db.changeUserPassword(myroot,123456)

此时输入>db.system.users.find()

没有任何变化

创建完成后可以进行测试,输入

>db.auth("myroot","123456")

若输入错密码,例如>db.auth("myroot","2222")

结果显示Error:Authentication failed验证失败

输入正确密码123456,结果返回值为1,就代表验证通过。说明刚才加入的超管通过,用户名为myroot,密码为123456。

以上就是整个用户添加的操作。

 

三、创建普通用户bobo

添加完超管用户后,我们真正在开发中使用超管去操作连接数据比较危险,一般还会添加一个普通用户,该普通用户权限相对较小,不会像超管一样对所有的库都有用,普通用户只去管理某一个库。例如我们常使用的库use articledb

因为我们刚才已经登录了超管用户,在进入后可以创建一个 bobo 的账户,密码为123456,但是权限比较小,只有读写的操作,读写操作针对 articledb 库。输入

>db. createUser({ user:"bobo", pwd:"123456", roles:[(role:"readWrite", db:"articledb"}]})

创建成功后可以验证 bobo,输入

>db.auth("bobo","123456")

此处返回值为1,如果此处密码输错显示验证失败。

以上新建了两个用户超级管理员和bobo普通用户,普通用户 bobo 只对 articledb有效。

相关实践学习
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
相关文章
|
28天前
|
Ubuntu 关系型数据库 MySQL
linux创建用户创建组删除用户以及组分配权限
linux创建用户创建组删除用户以及组分配权限
10 0
|
7月前
|
运维 Linux 数据安全/隐私保护
linux配置SVN,添加用户,配置用户组的各个权限教程
linux配置SVN,添加用户,配置用户组的各个权限教程
|
8月前
|
Oracle 关系型数据库
用户权限
ORACLE用户权限查询
60 0
|
3月前
|
Shell Linux 数据安全/隐私保护
用户,用户组相关操作
用户,用户组相关操作
36 0
|
Linux Shell 编译器
Linux:关机&重启操作+用户登录和注销+添加用户+指定/修改密码+删除用户+查询用户信息+切换用户+查询当前用户/登录用户+用户组+修改用户的组+用户组和相关文件
Linux:关机&重启操作+用户登录和注销+添加用户+指定/修改密码+删除用户+查询用户信息+切换用户+查询当前用户/登录用户+用户组+修改用户的组+用户组和相关文件
287 0
Linux:关机&重启操作+用户登录和注销+添加用户+指定/修改密码+删除用户+查询用户信息+切换用户+查询当前用户/登录用户+用户组+修改用户的组+用户组和相关文件
|
开发者 Python
添加用户功能的实现 | 学习笔记
快速学习 添加用户功能的实现
93 0
|
存储 Linux 数据安全/隐私保护
特殊权限| 学习笔记
快速学习特殊权限
特殊权限| 学习笔记
Confluence 6 自动添加用户到用户组
默认组成员(Default Group Memberships) 选项在 Confluence 3.5 及后续版本和 JIRA 4.3.3 及后续版本中可用。
1308 0
Confluence 6 在用户组中添加或删除用户
如果你是一个 Confluence AConfluence 管理员,你可以添加用户,用户组和指派一个用户到用户组,同时确定用户和用户组的权限。
1017 0