mongodb分为管理员用户和普通用户,并且还有个验证库,建立用户时use到的库(验证库),信息就存储在admin数据库下。

在使用用户时,要加上验证库才能登录,对于管理员用户,必须在admin下创建,验证用户返回值为1即成功。

1、创建管理员用户

语法:
user:用户名
pwd:密码
roles:
role:角色名
db:作用对象 常用role:root、readWrite、read
> use admin
switched to db admin
> db.createUser({
... user:"root",
... pwd:"yy123456",
... roles:[{role:"root",db:"admin"}]
... }
... )
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> db.auth('root','yy123456')
1
>

> db.createUser({user:"root",pwd:"yy123456",roles:[{role:"root",db:"admin"}]})

2、创建普通用户

> use test
switched to db test
> db.createUser({
... user:"test_1",
... pwd:"123456",
... roles:[{role:"readWrite",db:"test"}]
... })
Successfully added user: {
"user" : "test_1",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}

 > db.auth('test_1','123456')
 1
 >

3、登录

#本地登录
mongo -uroot -pyy123456 admin
mongo -utest_1 -p123456 test #远程登录
mongo -uroot -pyy123456 ip+端口/admin
mongo -utest_1 -p123456 ip+端口/test

4、删除用户

 以root用户登录,删除后use到admin库,查看所用用户信息

> use test
switched to db test
> db.dropUser("test_1")
true
> db.auth('test_1','123456')
Error: Authentication failed.
0
> use admin
switched to db admin
> db.system.users.find().pretty()
{
"_id" : "admin.root",
"userId" : UUID("31cc514b-00b2-434b-8d78-2dcd450f3cf2"),
"user" : "root",
"db" : "admin",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : "WVVZcAR1PnSjQLTAMolnYA==",
"storedKey" : "m5P8eMDZ7NvmpjAYH8FGTO6+k9k=",
"serverKey" : "B1mD3dfNpvlza7eO5g80MovmUaA="
},
"SCRAM-SHA-256" : {
"iterationCount" : 15000,
"salt" : "eivTZLkntjrnQllzhE8uUHCWtNdVpcvMT8Pysg==",
"storedKey" : "9NjJIph+k4WOnC+Fa/Th1LIzRbItK/R33EOZX8DC3+0=",
"serverKey" : "eF3eieOZvDEzQ0fMZlnOy1q0zXSwcD/5FeTzM7jIbFM="
}
},
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
>

5、用户权限

常用角色 权限说明
Read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 只在admin数据库中可用。超级账号,超级权限

Mongodb--用户/权限的更多相关文章

  1. MongoDB用户权限管理配置

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

  2. MongoDB用户权限认证

    关于用户的认证及权限 用户是跟着库创建的,在哪个库创建的什么权限的什么用户,只对此库有相应权限(除超级管理员以外). 官网文档:https://docs.mongodb.com/master/refe ...

  3. [MongoDB] 用户权限管理

    在新环境按照原来的步骤新装了MongoDB,结果出现了一些错误,才发现版本升到了2.6.1,用户权限相关的内容全部改掉了. 现在使用Role来管理用户,有一些内置的Role,也可以自定义Role. 内 ...

  4. mongodb用户权限管理(二)

    数据库 分配用户权限 有了创建语法,和参数说明,接下来开始实践. 注意,还有一点,账号是跟着数据库绑定的,在那个库里授权,就在那个库里验证(auth) 否则会失败 创建 账号管理授权权限 的账号 &g ...

  5. mongodb 用户 权限 设置 详解

    原文地址:http://blog.51yip.com/nosql/1575.html 我知道的关系型数据库都是有权限控制的,什么用户能访问什么库,什么表,什么用户可以插入,更新,而有的用户只有读取权限 ...

  6. MongoDB用户权限操作语法及示例

    1.创建用户 1.1.语法格式: 1.1.1.格式及例子 >db.createUser( { user: "<name>", pwd: "<cle ...

  7. MongoDB用户权限管理

    创建用户账号: (roles参数指定了用户的角色以及这个账号授权的数据库,在同一个数据库中不能同时创建两个用户名相同的账号) Mongodb内置的用户角色: 数据库用户角色:read.readWrit ...

  8. 【用户权限】MongoDB用户权限

    一.数据库用户角色: read:允许用户读取指定数据库readWrite:允许用户读写指定数据库 二.数据库管理角色:dbAdmin.dbOwner.userAdmin: dbAdmin:允许用户在指 ...

  9. mongodb 用户权限控制

    MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于W ...

  10. mongodb用户权限管理的CRUD

    https://blog.csdn.net/weixin_34332905/article/details/88759759?utm_medium=distribute.pc_relevant.non ...

随机推荐

  1. 国企项目就用国产的 Solon Java Framework,v2.5.12 发布

    Solon 是什么框架? Java 新的生态级应用开发框架.国产.从零开始构建,有自己的标准规范与开放生态(历时五年,具备全球第二级别的生态规模).与其他框架相比,解决了两个重要的痛点:启动慢,费内存 ...

  2. Educational Codeforces Round 104 (Rated for Div. 2) A~E题解

    写在前边 链接:Educational Codeforces Round 104 (Rated for Div. 2) A. Arena 链接:A题链接 题目大意: 给定一个长度为\(n\)的数组,表 ...

  3. ASM字节码操作类库(打开java语言世界通往字节码世界的大门)

    前言:授人以鱼不如授人以渔,应用asm的文章有很多,简单demo的也很多,那么ASM都具备哪些能力呢?如何去学习编写ASM代码呢?什么样的情景需要用到ASM呢?让我们带着这些问题阅读这篇文章吧. 这里 ...

  4. 嵌入式linux主机通过分区镜像生成固件,DD备份分区后打包成固件,px30刷机教程 ,rockchip刷机教程

    我这边有一个工控路由器因为刷机变砖了,网上下载不到固件,自己暂时还没有搞过编译.我找到了同型号的路由器,把它的系统制作成镜像. 具体操作分为三步: 第一步,直接用DD命令备份了几个分区,分区我暂时还不 ...

  5. BI到底是什么,是否所有企业都适合上BI?

    商业智能(Business Intelligence)的概念 商业智能(BI)是一种综合性的数据分析和决策支持系统,旨在帮助企业从海量的数据中提取有价值的信息,并将其转化为洞察力.报告和可视化呈现,以 ...

  6. 在.net中通过自定义LoggerProvider将日志保存到数据库方法(以mysql为例)

    在.NET中,Microsoft.Extensions.Logging是一个灵活的日志库,它允许你将日志信息记录到各种不同的目标,包括数据库.在这个示例中,我将详细介绍如何使用Microsoft.Ex ...

  7. 神经网络优化篇:详解正则化(Regularization)

    正则化 深度学习可能存在过拟合问题--高方差,有两个解决方法,一个是正则化,另一个是准备更多的数据,这是非常可靠的方法,但可能无法时时刻刻准备足够多的训练数据或者获取更多数据的成本很高,但正则化通常有 ...

  8. svelte的一些基础demo

    脚手架 Vite:vite是集成了svelte,初始化的时候选择svelte就行了. npm init vite SvelteKit:底层基于vite的更上层框架,类似于nextjs. npm cre ...

  9. 『Flutter』开发环境搭建

    1.前言 大家好,我是 BNTang,今天给大家介绍一下 Flutter 的开发环境搭建.在之前我已经将 Dart 的基本语法给大家介绍了,所以今天就不再介绍 Dart 的基本语法了,直接进入 Flu ...

  10. 深度解析 PyTorch Autograd:从原理到实践

    本文深入探讨了 PyTorch 中 Autograd 的核心原理和功能.从基本概念.Tensor 与 Autograd 的交互,到计算图的构建和管理,再到反向传播和梯度计算的细节,最后涵盖了 Auto ...