基础概念:

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:允许用户读写指定数据库
backup,retore:在进行备份、恢复时可以单独指定的角色,在db.createUser()方法中roles里面的db必须写成是admin库,要不然会 报错
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限,
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
dbOwner:The database owner can perform any administrative action on the database. This role combines the privileges granted by the readWrite, dbAdmin and userAdmin roles.

归纳起来就是用户角色分为管理和普通角色,用户管理和表管理,有些只能是admin数据库才能设置的权限。

另外每一个角色都是针对一个数据库来说的,而每一个用户的创建有事再一个数据库底下创建,就是要先use dbname,然后创建用户,而创建的时候可以是别的数据库role 比如:

{
    "_id" : "admin.admin",
    "userId" : UUID("146db95a-31a2-4778-b7c5-24f5b446bf1e"),
    "user" : "admin",
    "db" : "admin",
    "roles" : [
        {
            "role" : "clusterAdmin",
            "db" : "admin"
        },
        {
            "role" : "dbOwner",
            "db" : "admin"
        },
        {
            "role" : "dbAdminAnyDatabase",
            "db" : "admin"
        },
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}
{
    "_id" : "admin.user2",
    "userId" : UUID("7c686ffe-09ee-456c-bd15-69026e56b08a"),
    "user" : "user2",
    "db" : "admin",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "pre"
        },
        {
            "role" : "dbOwner",
            "db" : "use2"
        }
    ]
}

例如上面的admin用户有查看权限(所有数据库show collections),却没有其他db的读写权限,下面user2这个用户是创建在admin下面的,该用户对pre数据库和use2数据库分别由读写和所有权限。所以这块要注意人创建在哪个db下,可以操作哪个db。

下面附上一些db的权限密码相关操作:

show dbs          查看数据库
use dbname      进入数据库
show users        查看当前数据库用户权限
创建用户:
db.createUser({user:"usertest",pwd:"passtest",roles:[  {role:"clusterAdmin", db:"admin" }, {role:"readAnyDatabase",db:"admin" }, {role:"readWrite",db:"testDB" } ]})

修改密码:
方法1:db.changeUserPassword("usertest","changepass");
方法2:db.updateUser("usertest",{pwd:"changepass1"});

修改权限
db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它 
则使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()
db.grantRolesToUser("usertest",[{role:"readWrite",db:"testDB"},{role:"read",db:"testDB"}])     #修改权限
db.revokeRolesFromUser("usertest",[{role:"read", db:"testDB"}])   # 删除权限:

删除用户:db.dropUser('usertest')

mongo数据库用户创建及权限授予相关推荐

  1. oracle数据库用户创建_权限分配_以及导入_导出数据,oracle数据库用户创建、权限分配,以及导入,导出数据...

    下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例, 其中:安装目录选为:\oracle, 数据库名与数据库SID 号都输入:ora9i 数据库安装 ...

  2. 数据库用户创建、角色创建、用户和角色授予权限和权限收回

    数据库用户创建.角色创建.用户和角色授予权限和权限收回 文章目录 数据库用户创建.角色创建.用户和角色授予权限和权限收回 前言 授权与权限回收 GRANT语句的一般格式 REVOKE语句的一般格式 1 ...

  3. mysql用户及数据库的创建及权限的更改

    创建数据库 create database discuz default character set utf8 collate utf8_general_ci; 创建用户 create user 'd ...

  4. plsql 只读_使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...

  5. oracle用户创建及权限设置

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

  6. Orace用户创建及权限分配

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

  7. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  8. Mongo 用户创建及权限管理

    Mongo版本3.0之前使用的是db.addUser(),但3.0之后使用的是db.createUser() 内建的角色: 数据库用户角色:read.readWrite; 数据库管理角色:dbAdmi ...

  9. MongoDB新建数据库、集合以及用户创建和权限设置

    有段时间没用MongoDB了,最近因为业务需要开始使用MongoDB.这里就简单总结一下常用命令. 1.连接及查看所有数据库 mongo 主机ip:端口号/连接的数据库名 -u 用户名 -p 密码 / ...

最新文章

  1. 求职技巧—2014六个秘诀二 - 年求职
  2. Ubuntu服务器上部署kodexplorer私有云盘
  3. D3 Data Visualization in Ext JS
  4. 第三十五讲:tapestry Ajax zone组件无黄色闪烁的背景
  5. java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题...
  6. 自定义Sublime Text图标详细教程
  7. Python 面向对象程序设计(一)
  8. 关于慢开始、拥塞控制、快重传、快恢复算法的理解
  9. jquery中获得table中第几个td元素的值
  10. TensorFlow:字词的向量表示
  11. docker_4 数据卷技术
  12. 使用 Solr 构建企业级搜索服务器
  13. 构建区块链量化交易系统(一)
  14. rose ha 的使用
  15. Java泛型对象的实例化
  16. MySQL区分大小写
  17. 五分钟玩转Andriod开发环境配置
  18. 基于Living Atlas数据为木里山体滑坡敏感性建模
  19. 【深度】广告流量分配HWM算法
  20. 2022湖南最新中级消防员模拟考试试题及答案

热门文章

  1. 电脑计算机软件硬盘不足,磁盘空间不足,教您电脑磁盘空间不足如何解决
  2. 【bzoj1018】【SHOI2008】【堵塞的交通traffic】
  3. java 文本框只能输入数字_java 24 - 6 GUI之 创建只能输入数字的文本框
  4. 生产安全管理解决方案
  5. 机器学习的评价指标决定系数的理解
  6. oracle merge into 批量新增或更新
  7. 兼容IE7、IE8、IE9的input type=number插件
  8. 一步一个脚印笔试面试(二)—google2013年校园招聘笔试题答案
  9. Alibaba easyExcel对Excel操作之复杂标题处理
  10. element tree 如何全部展开、全部折叠