1:问题如下:

原因是 新版的MongoDB已经不支持addUser方法了。 
改成createUser了。 
使用方法如下 

 

2:具体解释一下db.createUser()方法的用法

 

定义:

创建一个数据库新用户用db.createUser()方法,如果用户存在则返回一个用户重复错误。

语法:
db.createUser(user, writeConcern)
    user这个文档创建关于用户的身份认证和访问信息;
    writeConcern这个文档描述保证MongoDB提供写操作的成功报告。

· user文档,定义了用户的以下形式:
{ user: "<name>",
  pwd: "<cleartext password>",
  customData: { <any information> },
  roles: [
    { role: "<role>", db: "<database>" } | "<role>",
    ...
  ]
}

user文档字段介绍:
    user字段,为新用户的名字;
    pwd字段,用户的密码;
    cusomData字段,为任意内容,例如可以为用户全名介绍;
    roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;
    在roles字段,可以指定内置角色和用户定义的角色。

    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
    PS:关于每个角色所拥有的操作权限可以点击上面的内置角色链接查看详情。

· writeConcern文档(官方说明
    w选项:允许的值分别是 1、0、大于1的值、"majority"、<tag set>;
    j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。
    wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。

例如:在products数据库创建用户accountAdmin01,并给该用户admin数据库上clusterAdmin和readAnyDatabase的角色,products数据库上readWrite角色。
use products
db.createUser( { "user" : "accountAdmin01",
                 "pwd": "cleartext password",
                 "customData" : { employeeId: 12345 },
                 "roles" : [ { role: "clusterAdmin", db: "admin" },
                             { role: "readAnyDatabase", db: "admin" },
                             "readWrite"
                             ] },
               { w: "majority" , wtimeout: 5000 } )

验证:
mongo -u accountAdmin01 -p yourpassward --authenticationDatabase products

mongodb 添加用户报错TypeError:db.addUser is not a function (mongodb3.4.1)的更多相关文章

  1. 在centos系统的/etc/hosts添加了 当前主机的 ‘ NAT分配的IP controller’,RabbitMQ添加用户报错。

    在centos系统的/etc/hosts添加了 当前主机的 ' NAT分配的IP controller',RabbitMQ添加用户报错. rabbitMq添加用户 报错信息如下 [root@contr ...

  2. TypeError: db.addUser is not a function : @(shell):1:1 ——mongoDB创建新用户名密码的方法

    不多说,旧版本使用 db.addUser("root","root") 新版本使用这句会出现这个错误提示 TypeError: db.addUser is no ...

  3. rhel6 mysql skip-grant-tables 添加用户报错 ERROR 1290

    不小心把数据库密码忘掉了, 这个时候我们只需要在数据库的配置文件里面添加 skip-grant-tables 然后重新启动服务,再登录数据库就不要我们输入密码了 这个时候我成功登录数据,可是不小心又把 ...

  4. 微信小程序报错TypeError: this.setData is not a function

    今天在练习小程序的时候,遇到小程序报错 对于处于小白阶段的我,遇到这种报错,真还不知道是错从何来,只有一脸蒙逼,后来通过查询,终于知道了问题所在,下面对这一问题做一记录 小程序默认中是这么写的 onL ...

  5. vscode安装依赖报错 TypeError: zipfile.readEntry is not a function

    错误原因是npm的版本太高,需要把5.x的版本换回4.x的 npm install npm@4 -g 或者 cnpm install npm@4 -g 详见:https://github.com/Mi ...

  6. Iview 启动报错 TypeError [ERR_INVALID_CALLBACK]: Callback must be a function

    解决 fs.write(fd, buf, 0, buf.length, 0, function(err, written, buffer) {}); 替换为 fs.write(fd, buf, 0, ...

  7. mongoDB数据库插入数据时报错:db.collection is not a function

    nodejs连接mongodb插入数据时,发现mongoDB报错:db.collection is not a function.解决方法: 1.npm下载mongodb2.x.x版本替换3.x.x ...

  8. ORACLE数据导入导出后新数据库中某些表添加操作报错[ORA-12899]

    由于项目需要,我在搭建了新的开发环境后,需要将之前环境中的ORACLE数据库导出,再导入到新的开发环境下.当导出导入完成后,使用数据库进行添加操作时 发现针对很多表的添加操作报错,具体报错原因描述为: ...

  9. 单点登录(十一)-----遇到问题-----cas启用mongodb验证方式报错--Unable to locate Spring NamespaceHandler for XML schema na

    cas启用mongodb验证方式报错--Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.sp ...

随机推荐

  1. eclipse开发scrapy爬虫工程,附爬虫临门级教程

    写在前面 自学爬虫入门之后感觉应该将自己的学习过程整理一下,也为了留个纪念吧. scrapy环境的配置还请自行百度,其实也不难(仅针对windows系统,centos配置了两天,直到现在都没整明白) ...

  2. 《浏览器工作原理与实践》<09>块级作用域:var缺陷以及为什么要引入let和const?

    在前面我们已经讲解了 JavaScript 中变量提升的相关内容,正是由于 JavaScript 存在变量提升这种特性,从而导致了很多与直觉不符的代码,这也是 JavaScript 的一个重要设计缺陷 ...

  3. Linux路径切换命令——directory stack

    操作directory stack一共需要3个命令: dirs .pushd.popd dirs: 显示当前目录栈 pushd: 把目录压栈 popd: 把目录弹栈 dirs 显示目录栈内容,如果没有 ...

  4. 系统---《windows + ubuntu双系统》

    安装 Windows + Ubuntu双系统 不是第一次安装 Windows + Ubuntu双系统了,每一遇见的问题都不一样,收获也不一样. 制作U盘的部分截图: 电脑的基本配置截图:

  5. 大数据之路week03--day05(线程 I)

    真的,身体这个东西一定要爱护好,难受的时候电脑都不想去碰,尤其是胃和肾... 这两天耽误了太多时间,今天好转了立刻学习,即刻不能耽误!. 话不多说,说正事: 1.多线程(理解) (1)多线程:一个应用 ...

  6. vue 后台获取文件流导出excel文件

    let params = { compStartTm: Date.parse(this.searchForm.compStartTm) / 1000, compEndTm: Date.parse(th ...

  7. 将CHROME WEBSTORE里的APPS和扩展下载到本地 转载自:http://ro-oo.diandian.com/post/2011-05-28/1103036

    Chrome Webstore 自动改版后就不能再直接下载到本地... 下载地址: https://clients2.google.com/service/update2/crx?response=r ...

  8. c++对c的扩展----引用类型

    变量是一个内存的别名,程序通过变量名使用内存空间,当然一个内存空间可以起多个别名么? 答案:可以,这就是c++中引用的由来,引用就是给变量起别名 引用是c++的概念!!!况且声明引用的符号&十 ...

  9. spring配置和映射文件

    配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www. ...

  10. Java8-Concurrency

    import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; public class Concurrency1 { pu ...