gpt4 book ai didi

mongodb - 错误 : couldn't add user: not authorized on test to execute command { createUser:

转载 作者:IT老高 更新时间:2023-10-28 13:06:24 26 4
gpt4 key购买 nike

我从 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" } ]
}
)

但是我收到了这个错误:

Error: couldn't add user: not authorized on newdb to execute command { createUser: "newuser", pwd: "xxx", roles: [ { role: "readWrite", db: "newdb" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0 } } at src/mongo/shell/db.js:1004

我用谷歌搜索过,但只有两个结果,一个是中文的,另一个是不相关的,所以我有点迷茫。任何想法 ?看起来我的管理员用户没有权限,我使用以下命令访问 mongodb:

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

提前致谢。

最佳答案

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

然后在没有 --auth 的情况下开始mongod --config/usr/local/etc/mongod.conf

然后更新你的角色 like

db.updateUser("admin",{roles : ["userAdminAnyDatabase","userAdmin","readWrite","dbAdmin","clusterAdmin","readWriteAnyDatabase","dbAdminAnyDatabase"]});

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


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

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

然后以该管理员用户身份登录,

SERVER: mongod --config /usr/local/etc/mongod.conf --auth

CLIENT: ./mongodb/bin/mongo localhost:27017/admin -u adminUser -p 123456

use APPLICATION_DB

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

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

现在您的应用程序必须使用此 APP_USER 和 APP_DB。

关于mongodb - 错误 : couldn't add user: not authorized on test to execute command { createUser:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27784956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com