我使用mongo 6.0.7
并运行此命令:
mongosh -u api -p --authenticationDatabase mydb_db
字符串
我用这个用户登录就可以了
但是使用相同的凭据,我的应用程序无法连接到数据库,并且我在日志中得到authentication failed
(如果重要的话,它是nodejs
)。
但是在登录后,我可以运行use mydb_db
,它切换正常,但是失败了:
rs0 [direct: primary] mydb_db> db.getUsers()
MongoServerError: not authorized on mydb_db to execute command { usersInfo: 1, lsid: { id: UUID("6bcc1743-9303-4ad4-a136-bc0b7bf0e1b8") }, $clusterTime: { clusterTime: Timestamp(1704272881, 1), signature: { hash: BinData(0, 62E80733C0FCF60FE333934D8E6796C319B16B99), keyId: 7264672765817389063 } }, $db: "mydb_db" }
rs0 [direct: primary] mydb_db> show users
MongoServerError: not authorized on mydb_db to execute command { usersInfo: 1, lsid: { id: UUID("6bcc1743-9303-4ad4-a136-bc0b7bf0e1b8") }, $clusterTime: { clusterTime: Timestamp(1704272881, 1), signature: { hash: BinData(0, 62E80733C0FCF60FE333934D8E6796C319B16B99), keyId: 7264672765817389063 } }, $db: "mydb_db" }
rs0 [direct: primary] mydb_db> show dbs
mydb_db 5.50 MiB
型
这个数据库不是新的,它已经工作了几个月了。昨天我修改了api
用户的密码。
我仍然可以登录,但这是我作为错误。
更新1
.env
文件的内容:
NODE_ENV=production
MONGO_URI_LOCAL=mongodb://localhost:27017/
MONGO_URI_SERVER=mongodb://api:myNewPassword@localhost:27017/
DB_NAME=mydb_db
DB_USERNAME=api
DB_PASSWORD=myNewPassword
型
1条答案
按热度按时间pgpifvop1#
你已经问过类似的问题了。我怀疑你更新错了用户。
您可以使用此命令检查数据库中所有已定义的用户(使用管理员帐户执行)。
字符串
仔细查看用户是在哪个数据库中创建的,以及您更改了哪个用户的密码。就我个人而言,我不知道为什么要在
admin
以外的任何数据库中创建用户。您还可以在尝试保存到mongodb时查看身份验证失败