MongoDB 用户及权限增删
本文主要是MongoDB4.X的操作
一、MongoDB用户创建
MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问。 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。 用户应该只有最小权限集才能确保最小权限的系统。
MongoDB系统的每个应用程序和用户都应该映射到不同的用户。 这种访问隔离便于访问撤销和持续的用户维护。
1.创建管理员用户
要在MongoDB部署中创建用户,请连接到部署,然后使用db.createUser()方法或createUser命令添加用户。
rs0:PRIMARY> db.createUser(
... {
... user:"test",
... pwd:"123456",
... roles:[{role:"root",db:"admin"}]
... }
... )
Successfully added user: {
"user" : "test",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
查看全部用户用db.getUsers();
2.添加并验证用户
use admin
db.addUser(“abc”,”123456”)
db.auth(“abc”,”123456”)
3.查看已存在的用户
db.system.users.find()
db.getUsers();
4.查看用户信息
> use admin
> db.getUser("用户名", { showPrivileges: true })
或
> db.getSiblingDB("admin").runCommand(
{
usersInfo: "root",
showPrivileges: true
}
)
5.添加数据库用户
创建指定数据库的用户,该用户只能访问该数据库。也可以为此数据库上的用户指定访问级别。 例如,创建一个在data数据库上具有读写访问权限的用户帐户。
> use data
> db.createUser( { user: "user01", pwd: "123456", roles: ["readWrite"] } )
或
db.getSiblingDB("admin").runCommand( { createUser: "user02", pwd: "123456", customData: { info: "user for user02" }, roles: ["readWrite"] } )
身份验证使用db.auth('用户名','密码');
Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
具体角色
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

db.createUser(
{
user: "fyerp",
pwd: "test.123",
roles:
[{ role: "readWrite", db: "item" },{ role: "readWrite", db: "local" },{ role: "readWrite", db: "logdb" }]
}
)
7.为用户添加角色
用户user02添加admin数据库的readWrite角色
> use admin
> db.grantRolesToUser( "user02", [ { role: "readWrite", db: "admin" }, { role: "user02", db: "admin" } ] )
或
> use admin
> db.runCommand( { grantRolesToUser: "user02", roles: [ { role: "readWrite", db: "admin" }, { role: "user02", db: "admin" } ] } )
8.更新用户信息
更新用户user02具有admin数据库readWrite角色为read角色。
> use admin
> db.updateUser( "user02", { customData: { info: "user for user02" }, roles: [ { role: "user02", db: "admin" }, { role: "read", db: "admin" } ] } )
或
> use admin
> db.runCommand( { updateUser: "user02", customData: { info: "user for user02" }, roles: [ { role: "user02", db: "admin" }, { role: "read", db: "admin" } ] } )
9.为用户回收角色
> use admin
> db.revokeRolesFromUser( "dbabd_user", [ { role: "read", db: "admin" } ] )
或
> use admin
> db.runCommand( { revokeRolesFromUser: "dbabd_user", roles: [ { role: "read", db: "admin" } ] } )
10.更改用户密码
更改用户dbabd_user密码为dbabdnew。
> use admin
> db.changeUserPassword("dbabd_user", "dbabdnew")
11.删除用户
删除用户dbabd_user
> use admin
> db.dropUser("dbabd_user")
或
> use admin
> db.runCommand({ dropUser: "user02" })
关于更多用户管理操作信息可以参考官方文档说明:
https://docs.mongodb.com/manual/reference/method/js-user-management/
MongoDB 用户及权限增删的更多相关文章
- 管理 MongoDB 用户和权限
创建用户 创建用户的函数是:db.createUser(). 创建用户时,需要为该用户添加权限.可添加的权限以及说明: 权限 作用 read 允许用户读取指定数据库. readWrite 允许用户读写 ...
- MongoDB用户验证和权限管理
官方参考页面: https://docs.mongodb.com/v3.6/tutorial/enable-authentication/ https://docs.mongodb.com/v3.6/ ...
- mongoDB之用户及权限设置
之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB.在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问. 我部署的环境是ubuntu 1 ...
- Windows安装MongoDB 4.0并赋予用户访问权限
第一部分 Windows安装MongoDB-4.0 第一步:下载MongoDB:https://www.mongodb.com/download-center?jmp=nav#community 我目 ...
- MongoDB用户权限认证
关于用户的认证及权限 用户是跟着库创建的,在哪个库创建的什么权限的什么用户,只对此库有相应权限(除超级管理员以外). 官网文档:https://docs.mongodb.com/master/refe ...
- 【用户权限】MongoDB用户权限
一.数据库用户角色: read:允许用户读取指定数据库readWrite:允许用户读写指定数据库 二.数据库管理角色:dbAdmin.dbOwner.userAdmin: dbAdmin:允许用户在指 ...
- MONGODB用户、角色和权限管理
最近遇到很多问MONGODB用户认证授权方面的问题,现在特记录下来,与大家共享. 一.概念理解 1.用户概念 Mongodb的用户是由 用户名+所属库名组成 例如: 登录mongo testdb ...
- mongoDB的复制集5----复制集安全(认证,用户,权限)
一.什么是认证 如何开启认证 1).auth=true(在配置文件里增加) 2).keyFile(建议添加到配置文件里) #如果设置了auth=true,但第一次没有创建用户就启动实例怎 ...
- MongoDB增加用户、删除用户、修改用户读写权限及只读权限(注:转载于http://www.2cto.com/database/201203/125025.html)
MongoDB 增加用户 删除用户 修改用户 读写权限 只读权限, MongoDB用户权限分配的操作是针对某个库来说的.--这句话很重要. 1. 进入ljc 数据库: use ...
- MongoDB系列---用户及权限管理02
MongoDB-——Privilege 学习大纲: 1.用户权限管理 2.用户操作 知识回顾: 本系列上一篇博文我们讲述了如何搭建环境以及配置我们的MongoDB,通过搭建环境后我们又学习了如何通过 ...
随机推荐
- 错误:[ERROR] 不再支持源选项 5。请使用 6 或更高版本。 [ERROR] 不再支持目标选项 1.5。请使用 1.6 或更高版本。
解决方案 pom.xml文件中增加maven编译的java.version jdk版本设置,以及maven.compiler.source 资源编译jdk版本设置和maven.compiler.tar ...
- Vmware-workstation - Centos8.0扩容磁盘空间 / 目录
1. 软件版本 vmware workstation 15 pro 虚拟机: centos8.0 2.将虚拟机关机选择扩容到多大 3. 进入操作系统,执行lsblk查看sda盘的情况.下图所示,需要 ...
- clear
BFC虽然可以达到外部背景由内部内容撑开的效果,但是存在副作用 所以由clear将affter受浮动效果解除,来解决以上问题
- Java面向对象编程导论
面向对象编程简介 JAVA是一门面向对象的编程语言.面向对象编程范式与面向过程编程范式同属于命令式编程范式,与函数式编程范式相区别.在面向对象编程范式中,我们将我们要处理的系统的业务逻辑表现为对象之间 ...
- 插入排序C语言
1 #include "stdio.h" 2 #include "stdlib.h" 3 typedef int ElemType; 4 //直接插入排序 5 ...
- 算法学习—————数位dp
记忆化搜索版,比较有套路 就根据杠杆数这道题来回忆一下 题目大致意思:选定大数中的某个数作为支点,使左右两边的力矩和相等,求区间内能满足条件的数的个数 首先一个大前提:对于一个满足条件的数来说,他的支 ...
- vue相关组件用法
<el-checkbox v-model="checkbox.checkModel" :label="index":disabled="chec ...
- DPU02是一个高度集成的USB转UART的桥接控制器
DPU02是一个高度集成的USB转UART的桥接控制器,该产品提供了一个简单的解决方案,可将RS-232设计更新为USB设计,并简化PCB组件空间.该DPU02包括了一个USB 2.0全速功能控制器. ...
- 【Hive 元数据和真实数据-TAB_COL_STATS记录错误问题】
MySql的元数据以及HDFS上数据的关系 元数据在DBS和TBLS上 (SD_ID) 1 首先通过hive创建一个表table_test 在hdfs的存储路径会生成相应的表 TBLS 也会更新内容进 ...
- 关于Salesforce存在至于项目的选择List的取值问题
概要: 我们在做项目的时候,经常会遇到一个问题: 一个选择List字段的可选项被另一个选择List制约,这种情况如何在后台取得这两者的对应关系. 原文在这里(侵删): Apexで連動項目の選択肢を取得 ...