当前位置: 首页 > 知识库问答 >
问题:

错误:无法添加用户:测试时未授权执行命令{createuser:

蓝宜
2023-03-14

我从MongoDB开始,我想使用/通过DBS访问。我做的第一件事是创建和管理用户,并使用auth activate启动mongodb,这是我创建的用户:

db.getUser("admin") 
{
        "_id" : "admin.admin",
        "user" : "admin",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "dbAdminAnyDatabase",
                        "db" : "admin"
                },
                {
                        "role" : "clusterAdmin",
                        "db" : "admin"
                }
        ] }
}

之后,我尝试使用以下命令创建用户:

use newdb
db.createUser(
  {
    user: "newuser",
    pwd: "12345678",
    roles: [ { role: "readWrite", db: "newdb" } ]
  }
)

但我得到了这个错误:

我在谷歌上搜索过,但只有两个结果,一个是中文的,另一个不相关,所以我有点迷茫。你知道吗?看起来我的管理用户没有权限,我可以使用以下命令访问mongodb

$mongo --port 27017 -u adminUser -p adminPass  --authenticationDatabase admin

提前谢了。

共有1个答案

丘友樵
2023-03-14

停止运行的mongodmongod实例--config/usr/local/etc/mongod.conf--auth

然后开始时不要--auth,比如mongod--config/usr/local/etc/mongod.conf

然后更新您的角色,如

db.updateUser(“admin”,{roles:[“useradminanydatabase”,“useradmin”,“readwrite”,“dbadmin”,“clusteradmin”,“readwriteanydatabase”,“dbadminanydatabase”]});

现在再次用--auth启动mongod并尝试。

这个想法是,您必须在“管理”数据库下创建具有上述所有角色的用户。

但是这个用户不是其他数据库的一部分。所以一旦您创建了管理用户,

然后作为管理用户登录,

服务器:mongod--config/usr/local/etc/mongod.conf--auth

use APPLICATION_DB

再次为这个application_db创建一个新用户(比如APP_USER)。这一次,对于这个应用程序用户,您只需要“dbowner”角色。

db.createUser({user:"test", pwd:"test", roles:['dbOwner']})

现在您的应用程序必须使用这个APP_USER和app_db。

 类似资料:
  • 我真的很感激你能提供的任何帮助!

  • 我试图通过Java Apachebeam MongoDbIO连接器连接到MongoDB,得到一个“未授权”错误。 同样的连接细节也适用于Python并能够检索数据。 “org.apache.beam.sdk.io.mongodbo.mongodbio$boundedmongodbsource.$closeresource(Mongodbio.java:407)位于org.apache.beam.s

  • 我花了一些时间试图找出什么是错误的,但由于我无法找到,我决定在这里问。 我正在运行MongoDB(Windows 64位2008 R2)3.2版。3在Windows 8上,路径为: C:\MongoDB\bin用于安装 数据文件夹的C:\data\db 我已经从官方文档中安装了以下视频和教程。 第一个问题可能是客户端(mongo.exe)和服务器(mongod.exe)之间的连接,因为我不知道这是

  • 非常好的一天, 任何帮助都很感激。提前谢了。

  • 我已经通过https://JWT.io为DocuSign生成了JWT令牌。现在,为了获得访问令牌,我在Curl中使用以下命令,在Windows命令行工具上。rrefering文档https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-jsonWebToken。我得到了“无效授权”。我的请求有什么问题?我

  • 我正在从ubuntu创建一个docker文件:仿生图像。 我想要一个具有sudo权限的ubuntu用户。 这是我的文件 但是有了这个密码,我需要写下ubuntu用户的密码。 有一种方法可以通过命令行将NOPASSWD子句添加到sudoers文件中的sudo组?