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,通过搭建环境后我们又学习了如何通过 ...
随机推荐
- JavaSE——.replace()方法替换内容
package com.zhao.stringtest; public class Test5 { //.replace()方法替换词汇 public static void main(String[ ...
- MyBatis-Plus的批量处理之insertBatchSomeColumn
一.MyBatis插入数据方式 1. MyBatis单条save方式: 2. MyBatis多条mapper.xml里写foreach循环: 3. MyBatis-Plus多条saveBatch方式, ...
- Ubuntu20.04 LTS更新源
Ubuntu 20.04 LTS Focal Fossa于2020年04月23日发布. 备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.ba ...
- springboot外部部署官方文档说明复制版
官方文档地址为: https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/htmlsingle/#boot-features-e ...
- 小白之Linux基础命令
命令大全 : http://man.linuxde.net/touch --------------------------20170802晚linux ls--显示当前路径下的文件及文件夹名字cd ...
- ATX server简介及环境搭建
简介 atx server 是移动设备管理平台: 搭建这样的一个平台,需要 python3.x + nodejs+rethinkdb,及atxserver2和atxserver2-android-p ...
- jmeter分布式配置及问题记录
环境配置: 假设有2台电脑,主机(10.1.5.219),从机(10.1.5.212) 主机:jdk.jmeter.脚本.脚本所需的文件(需配置jdk和jmeter的环境变量) 从机:jdk.jm ...
- 阿里云centos7安装图形界面gnome
这应该是很无聊很蛇精的操作吧. 首先命令行远程登陆阿里云,然后root身份更新系统,安装gnome这些操作(菜如我以前都没有操作过),参照网上虚拟机的教程. # yum update -y # yum ...
- scrapy框架学习(六)日志设置和数据存储
日志设置 CRITICAL : 严重错误 ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG : 调试信息 默认的显示级别是DEBUG # 设置错误显示级别 LO ...
- APP与Web测试区别
相同点: WEB 测试和 App 测试从流程上来说,没有区别.都需要经历测试计划方 案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说, WEB 测试和 APP 测试其测试类型也基本相 ...