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

1. 现象描述

在使用MongoDB时,我们经常需要在local数据库中创建用户,但有时候会遇到创建失败的情况,出现类似下面的错误提示:

Error: couldn't add user: not authorized on admin to execute command { createUser: "username",...

2. 解决方法

如果你遇到上面的错误提示,那么你需要按照以下步骤来解决:

2.1 查看用户权限

首先,我们需要查看当前MongoDB连接的用户是否拥有对local数据库的权限。这可以通过以下命令来实现:

mongo

use local

db.runCommand({whatsmyuri: true})

该命令将返回当前连接的用户和其权限。

2.2 增加权限

如果你发现连接的用户没有对local数据库的操作权限,那么你需要为该用户增加权限。你可以使用如下命令来实现:

mongo

use admin

db.createUser(

{

user: "username",

pwd: "password",

roles: [ { role: "root", db: "admin" }, { role: "readWrite", db: "local" } ]

}

)

该命令将创建一个名为username的用户,并赋予该用户对admin和local数据库的root和readWrite权限。

2.3 重新连接数据库

当你完成以上步骤后,你需要断开当前数据库连接,并重新连接。这可以通过以下命令来实现:

use admin

db.auth("username", "password")

该命令将使用刚刚创建的用户名和密码重新连接数据库。

2.4 创建用户

最后,你可以使用以下命令创建用户:

use local

db.createUser(

{

user: "username",

pwd: "password",

roles: [ { role: "readWrite", db: "local" } ]

}

)

该命令将创建一个名为username的用户,并赋予该用户对local数据库的readWrite权限。

3. 结论

在本篇文章中,我们介绍了解决在MongoDB中创建用户遇到的问题的方法。如果你遇到了该问题,可以尝试以上方法来解决。如果问题依然存在,请检查连接的用户是否拥有正确的权限,并尝试重新连接数据库。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签