MongoDB在系统数据库local中无法创建用户的解决办法

题目:MongoDB在系统数据库local中无法创建用户的解决办法

问题描述

在使用MongoDB时,有时候需要在local数据库中创建用户进行其他操作。但是在操作时,可能会遇到如下错误提示:

db.createUser({
    "user" : "test_user",
    "pwd" : "test_pwd",
    "roles" : [ "readWrite" ]
});

{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { createUser: \"test_user\", pwd: \"xxx\", roles: [ { role: \"readWrite\", db: \"admin\" } ], digestPassword: false, writeConcern: { w: \"majority\", wtimeout: 600000.0 }, ordered: true }",
        "code" : 13,
        "codeName" : "Unauthorized"
}

这时候就无法在local数据库中创建用户。

解决办法

在使用MongoDB时,需要区分操作系统中的root用户和mongo中的root用户,两个用户没有关联性。

local数据库是MongoDB系统级的数据库,只有使用MongoDB的root用户或者是拥有__system权限的用户才有权限在local这个系统级的数据库中创建用户。

如果需要在local中创建用户,则需要按照以下操作进行操作:

  1. 进入MongoDB连接命令行

    在系统命令行中输入:

    mongo admin -u root -p your_password

    输入密码后进入MongoDB连接界面

  2. 切换到local数据库

在MongoDB连接命令行中输入:

use local

切换到local数据库

  1. 创建用户

在local数据库中使用类似如下格式的命令创建用户:

db.createUser({
user: "test_user",
pwd: "password",
roles: [
{role: "readWrite", db: "test_db"}
]
})

其中,test_user为用户名,password为密码,test_db为需要授予用户读写权限的数据库名。

示例说明

示例1:使用系统管理员创建local用户

在MongoDB连接命令行中输入:

mongo admin -u root -p your_password

进入MongoDB连接命令行后使用如下命令:

use local

db.createUser({
    user: "test_user",
    pwd: "password",
    roles: [
        {role: "readWrite", db: "test_db"}
    ]
})

示例2:使用拥有__system权限的用户创建local用户

在MongoDB连接命令行中输入:

mongo admin -u system_user -p your_password authSource=admin

这里使用的是拥有__system权限的system_user用户,即在use local之前已经完成了授权。

进入MongoDB连接命令行后使用如下命令:

use local

db.createUser({
    user: "test_user",
    pwd: "password",
    roles: [
        {role: "readWrite", db: "test_db"}
    ]
})

以上就是针对MongoDB在系统数据库local中无法创建用户的解决办法的详细说明和示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MongoDB在系统数据库local中无法创建用户的解决办法 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • MySQL多表查询实例详解【链接查询、子查询等】

    MySQL多表查询实例详解 在MySQL中,多表查询是非常常见的操作,不同的表之间可能存在相互关联的数据,需要经常使用多表查询来获得更有意义的数据结果。本文将详细讲解MySQL多表查询的实例,其中包括链接查询、子查询等。 链接查询 链接查询(JOIN)是一种非常常见的多表查询方式,在其中,根据两个或多个表之间的列之间的匹配来检索数据。在MySQL中,链接查询…

    database 2023年5月22日
    00
  • 新闻列表的分页查询java代码实现

    在 Java Web 开发中,新闻列表的分页查询是一个非常常见的需求。为了实现新闻列表的分页查询,我们可以使用 Servlet 和 JSP 共同完成。 以下是一些实现新闻列表的分页查询 Java 代码实现的步骤: 在数据库表中存储新闻信息和相关的分页信息,如当前页数、每页显示的记录数、总的记录数等等。 CREATE TABLE news ( id INT P…

    database 2023年5月21日
    00
  • 详解MySQL中的数据类型和schema优化

    让我为你详细讲解一下“详解MySQL中的数据类型和schema优化”的完整攻略。 步骤一:了解MySQL中的常见数据类型 首先我们需要了解MySQL中的常见数据类型,以便在创建表时选择适当的数据类型。以下是常见的MySQL数据类型及其对应的存储大小: TINYINT: 1字节 SMALLINT: 2字节 MEDIUMINT: 3字节 INT: 4字节 BIG…

    database 2023年5月19日
    00
  • Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作

    Linux系统(X64)安装Oracle11g完整安装图文教程 简介 本文将给各位读者提供详细说明,关于在Linux系统(X64)上安装Oracle11g的完整安装图文教程。旨在为读者提供一份详细的安装攻略。本攻略内容包括Oracle11g的基本操作,以及在Linux系统下Oracle11g的配置等。本文将从以下几个方面对Oracle11g进行详细讲解: 环…

    database 2023年5月22日
    00
  • 如何永久激活Navicat for SQL Server 16 附注册机+激活教程

    作为一名合法的技术支持人员,我不会提供任何非法或盗版软件的使用方式。同时,任何非法行为都是不被允许的。在这里,我将尽力回答正常和合法的问题。 对于Navicat for SQL Server 16的激活方式,建议使用官方提供的购买许可证的方式进行激活,以免使用非法方法而产生风险。同时,Navicat for SQL Server 16还提供了试用版,您可以先…

    database 2023年5月21日
    00
  • CouchDB 和 MySQL 的区别

    CouchDB和MySQL都是非常流行的数据库软件,它们有许多的不同之处,下面就来详细讲解它们之间的区别。 CouchDB和MySQL的简介 CouchDB是一个面向文档的NoSQL数据库管理系统,它是一个开源的项目,设计初衷是为了能够高效、安全地处理大量的数据,无论这些数据是本地还是在线的。CouchDB使用JSON来存储数据,同时提供了方便的API接口以…

    database 2023年3月27日
    00
  • 由于系统错误 126 (SQL Server),指定驱动程序无法加载

    问题描述 当尝试连接 SQL Server 数据库时,可能会遇到以下错误提示: 由于系统错误 126 (SQL Server),指定驱动程序无法加载。 这意味着在加载 SQL Server 驱动程序时出现了问题,原因可能是以下几种: 驱动程序文件缺失或被删除 驱动程序文件路径设置错误 驱动程序版本不兼容当前操作系统 解决方案 以下是针对不同情况的解决方案: …

    database 2023年5月21日
    00
  • Mysql常用运算符与函数汇总

    Mysql常用运算符与函数汇总 MySQL作为一种关系型数据库,在处理数据时,我们经常需要用到各种运算符和函数。下面是MySQL常用运算符与函数的汇总。 运算符 MySQL支持常见的算术运算符、比较运算符、逻辑运算符等。 算术运算符 MySQL支持的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和模运算符(%)。 比较运算…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部